草庐IT

rspec-puppet

全部标签

ruby-on-rails - Rspec - 引发错误时参数数量错误

所以在我的代码中我尝试测试这个方法:#checksifafilealreadyexistsonS3deffile_exists?(storage_key)begins3_resource.bucket(@bucket).object(storage_key).exists?rescueAws::S3::Errors::Forbidden=>efalseendend现在我正在尝试制作两个测试用例-一个用于文件存在的情况,一个用于文件不存在的情况。关注失败案例。我想去掉exists?提高Aws::S3::Errors::Forbidden错误使得file_exists?方法将返回false

ruby - 在 RSpec 中检查(不存在) `puts`

我在一个ruby​​项目中使用rspec进行测试,我想说明在使用-q选项时我的程序不应输出任何内容。我试过:Kernel.should_not_receive:puts当有输出到控制台时,这并没有导致测试失败。如何验证文本输出的缺失? 最佳答案 puts在内部使用$stdout。由于它的工作方式,最简单的检查方法是简单地使用:$stdout.should_not_receive(:write)检查没有按预期写入标准输出。Kernel.puts(如上所述)只会导致测试失败被明确地这样称呼(例如Kernel.puts“Sometext”

ruby - capybara -webkit : automatically save a screenshot on an RSpec test failure

当使用带有Rspec的capybara-webkit测试失败时,如何自动保存html和屏幕截图?如何在RSpec测试失败时执行回调。奖励积分:如何避免出现以下错误:Capybara::Driver::Webkit::WebkitInvalidResponseError执行这段代码时:require'capybara/util/save_and_open_page'path="/#{Time.now.strftime('%Y-%m-%d-%H-%M-%S')}"png=Capybara.save_and_open_page_path+"#{path}.png"page.driver.re

ruby - 在 RSpec 中 stub RestClient 响应

我有以下规范...describe"successfulPOSTon/user/create"doit"shouldredirecttodashboard"dopost'/user/create',{:name=>"dave",:email=>"dave@dave.com",:password=>"another_pass"}last_response.shouldbe_redirectfollow_redirect!last_request.url.should=='http://example.org/dave/dashboard'endendSinatra应用程序的post方法使

ruby - 在具有组合因素的 RSpec 中组织测试的最佳方法

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭6年前。Improvethisquestion我正在创建一些具有各种输入的测试。我正在测试一个购买网站,其中包含新用户和返回用户类型、不同的产品、促销代码和付款选项。我觉得这是一个数据驱动的测试集,可能需要测试输入的csv或电子表格格式。我一直在使用rspec,它非常适合我创建的最后一个测试集。我想要一致的结果格式。我坚持如何使用RSpec的数据表。有人使用过带有测试输入表的RSpec吗?提前感谢您提供直接的解决方案或合理的建议。

ruby-on-rails - Rspec 模拟, 'expect' 也可以 stub 方法作为副作用吗?

我正在尝试理解继承应用程序中的测试,我需要一些帮助。有很多像这样的规范组(查看规范):let(:job_post){FactoryGirl.create(:job_post)}#...beforedoexpect(view).toreceive(:job_post).at_least(:once).and_return(job_post)endit"shouldrenderwithouterror"dorenderend...job_post是在Controller上定义的辅助方法。(是的,他们可以使用@instance变量,而我正在重构它)。现在,在我看来,在beforeblock中

ruby-on-rails - 在所有 MiniTest 测试中包含模块,就像在 RSpec 中一样

在RSpec中,我可以在/spec/support/...中创建辅助模块moduleMyHelpersdefhelp1puts"hi"endend并将其包含在每个规范中,如下所示:RSpec.configuredo|config|config.include(MyHelpers)end并像这样在我的测试中使用它:describeUserdoit"doessomething"dohelp1endend如何将模块包含到所有MiniTest测试中而不在每个测试中重复自己? 最佳答案 来自Minitest自述文件:===Howtoshare

ruby-on-rails - capybara 和 Rspec : correct way to use within() and have_selector() together?

我使用rspec2.6.0和Capybara1.1.1进行验收测试。具有如下View:Team3NametrueShowEditDeactivateTeam4NametrueShowEditDeactivate我想编写一个验收测试,声明:“团队3没有‘停用’链接。”我希望以下操作失败:within('tr',:text=>'Team3Name')do|ref|page.should_nothave_selector('a',:text=>'Deactivate')end但它过去了。为了进一步测试发生了什么,我写了荒谬的:lock=falsewithin('tr',:text=>'Tea

ruby-on-rails - RSpec 在测试数据库中留下记录

每当我运行用户测试时,RSpec都会在测试完成后将Fabricated用户留在测试数据库中,这会扰乱我的其他测试。我将执行rakedb:test:prepare,但是当我再次运行测试时,会在我的数据库中重新创建记录。我不知道为什么会这样。它只发生在用户对象上。在我的spec_helper文件中我什至有:config.use_transactional_fixtures=true这是一个创建记录的示例测试:it"createsapasswordresettokenfortheuser"doalice=Fabricate(:user)post:create,email:alice.emai

ruby - RSpec: "should == ..."和 "should eql(...)"之间的区别

在RSpec中,使用should==...和shouldeql(...)有什么区别?我注意到RSpec文档总是使用eql,但是==更少打字而且更容易阅读。我错过了什么? 最佳答案 其实很简单:should==发送==消息给测试对象,shouldeql发送eql?消息给测试对象。换句话说:两个不同的测试发送两个完全不同的消息,它们调用两个完全不同的方法,因此做两个完全不同的事情。特别是,eql?比==更严格,但不如equals?严格。 关于ruby-RSpec:"should==..."和