草庐IT

guard-rspec

全部标签

ruby-on-rails - RSpec:多次期待一条消息但参数不同

我目前对连续调用的模拟设置了一些期望:规范:@my_mock=mock("a_mock")@options1={:some=>"option"}@options2={:some_other=>"option"}@first_param=mock("first_param")@my_mock.should_receive(:a_message).with(@first_param,@options1)@my_mock.should_receive(:a_message).with(@first_param,@options2)但是,我得到以下信息:Mock"a_mock"received

ruby - 如何使用 RSpec should_receive 忽略额外的消息?

规范:beforedoLogger.should_receive(:write).with'Logmessage1'endit'works'doget'/'endSinatra应用程序:get'/'Logger.write('Logmessage1')Logger.write('Logmessage2')end由于“日志消息2”,此规范失败。如何告诉RSpec忽略任何其他消息,只测试预期的消息? 最佳答案 您需要在消息预期之前对将接收消息的方法进行stub。#RSpecstubmethodisdeprecatedinRSpec3,而

ruby-on-rails - 使用 Rspec 选择单选按钮

我目前正在使用RSpec编写一个表单测试,我想知道我将如何选择一个单选按钮,给出下面的表单:我希望我的测试看起来像这样:describe"withvalidoptionsselected"dobeforedo#CODETOSELECTARADIOBUTTONclick_button"SAVE"endend 最佳答案 describe"withvalidinfo"dobeforedochoose('True')click_button"CreateSetlist"end...end我必须为单选按钮分配一个ID才能正常工作额外引用文档:

ruby-on-rails - 如何测试 RSpec in Rails 中的 204 响应?

我正在测试我的资源Controller的删除操作,如下所示:describeResourceControllerdocontext"DELETEdestroy"dobefore:eachdodelete:destroy,id:@resource.idendit{shouldrespond_with(:no_content)}endend我期待204/无内容响应。但是,此测试失败,因为服务器返回的响应是406。当我直接从Rest测试客户端访问Controller时,响应是204。 最佳答案 几年过去了......我只想指出,可以使用e

ruby - 我可以拥有没有方法类的 RSpec 吗

我只是在写一些我不想放在类中的算法方法。所以我只是把它们放在我的ruby​​文件中。但是我无法弄清楚如何编写测试或更具体地使用describe:xxx因为我没有要放在主要描述之后的类名。有什么想法吗? 最佳答案 您可以在describe语句后放置任何字符串:describe"SomethingYouWantToTest"do#Yourspecshereend 关于ruby-我可以拥有没有方法类的RSpec吗,我们在StackOverflow上找到一个类似的问题:

ruby - 如何在具有通配符的 RSpec 中请求(GET/POST)路由

我在Rails中有这条(公认的丑陋的)路线:scope'/software'dopost'/:software_id/:attachment_id/event/*event'=>'software#post_event',as:'post_event'end(如果不是遗留API,我会更改它)我正在为它编写一个RSpec测试。rakeroutes给我:post_eventPOST/software/:software_id/:attachment_id/event/*event(.:format)api/version1301/software#post_event我的测试是这样的:de

ruby - RSpec Ruby 中的关键字 "should"到底是什么

我是Ruby的初学者,这个问题困扰了我很长时间。在RSpec文件中,如果我们写Book.should,什么是should关键词?它是Book对象的成员吗?它是如何成为Book对象的成员的?或者它是Ruby的某种构造?它是一个函数吗?如果它是函数或成员,我在哪里可以找到它的定义? 最佳答案 加载后,RSpec包括amodule进入Kernel模块,该模块包含在Ruby已知的所有对象中。因此,它可以使should方法对所有对象都可用。因此,should不是关键字(如if、class或end),而是一种普通方法。请注意,mixin仅在RS

ruby-on-rails - ruby on rails 中的 Rspec 测试,无法加载此类文件 webmock/rspec

当我在我的ruby​​onrails应用程序中运行rspec测试时..git@ruby-rails:~/gitlab$sudobundleexecrspecspec/controllers/public_spec.rbNoDRbserverisrunning.Runninginlocalprocessinstead.../usr/local/lib/ruby/gems/1.9.1/bundler/gems/gollum-5dcd3c8c8f68/lib/gollum/markup.rb:222:warning:alreadyinitializedconstantPREFORMATTED

ruby - 我可以使用 RSpec 模拟标准输入/标准输出来测试控制台读写吗?

我的Ruby程序从stdin读取行并使用puts打印到stdout(终端)。我可以使用RSpec来测试读写吗?我可以像在stdin中编写的那样向我的程序注入(inject)一个字符串,同时检查输出吗?line=STDIN.read.chomp.split另外,我在一个循环中进行读取和写入,直到line[0]被“退出”。我可以在循环运行时进行测试,还是应该调用subject.read_in和subject.write_out? 最佳答案 您可以使用模拟并通过在and_return()方法中列出多个值来多次调用该方法。这些将按照给定的顺

ruby-on-rails - Rails 5.1 使用 RSpec 配置内置系统测试

看完RailsConfvideoonActionDispatch::systemTestCase,我很高兴将它整合到我当前的应用程序中。目前我们的测试套件设置使用以下内容:rspecfactory_girlcapybara#功能规范database_cleaner#用于功能规范,主要用于测试jsselenium-webdriver#功能规范capybara-webkit#功能规范很难让配置适用于我们当前的设置,但我们最终成功了,这在很大程度上要归功于AvdiGrimm的一篇文章,标题为:Configuringdatabase_cleanerwithRails,RSpec,Capybar