草庐IT

rspec-sidekiq

全部标签

ruby-on-rails - rspec 和 shoulda - 互补还是替代?

我已经使用了一段时间的shoulda,并且阅读并使用了rspec。我没有做过深入的比较和对比。但在我看来,两者之间有一些重叠,但它们不是1-1的替代品。我正在考虑使用rspec在我的rails系统中编写一些单元测试,而不替换所有使用shoulda编写的现有测试。只是作为一种获得感觉的方式。这是个好主意吗?我可以逐渐从一个转移到另一个还是自找麻烦?我应该考虑其中一个比另一个明显的优势吗?谢谢! 最佳答案 我不得不反对Chris的回答,即它们是替代方案。我在我的Rails应用程序中同时使用Shoulda和Rspec,它们相互补充得很好。

ruby-on-rails - 你如何分解出 RSpec 中常见的 "before(:each)"调用,以便多个规范可以使用它们?

我想分解这堆代码,以便我所有的Controller测试(好吧,几乎所有的)都使用这个before(:each)block:before(:each)do@user=User.newcontroller.stub(:authenticate_user!)controller.stub(:current_user).and_return(@user)controller.stub(:add_secure_model_data)end有什么办法吗?我不想将它包含在所有Controller中......因为有一些不需要它。基本上,每个从SecureController扩展的Controller

ruby - rspec 中的依赖测试

我编写功能测试,我需要做的测试取决于之前测试的通过情况。假设我有一个按钮可以打开一个窗口,其中有一个功能。也就是说,为了检查此功能,我需要首先检查按钮的正确操作(即打开窗口或不起作用)。所以,我需要这样做,如果单击按钮时测试失败,则测试不会运行以检查功能窗口。单独编写测试-对我来说不是一种选择。我希望看到这样的内容:describe"sometests"doopen_result=nilit"shouldcheckworkbutton"doclick_to_button()open_result=window_opened?open_result.should==trueendifop

ruby-on-rails - RSpec 期望接收带有数组的方法,但顺序无关紧要

假设我有方法#sum,它接受一个数组并计算所有元素的总和。我正在stub:beforedoexpect(calculation_service).toreceive(:sum?).with([1,2,3]){6}end不幸的是,我的测试服以随机顺序传递数组。由于引发了该错误:Failure/Error:subject{do_crazy_stuff!}#received:sum?withunexpectedargumentsexpected:([1,2,3])got:([3,2,1])是否可以忽略数组元素的顺序对方法调用进行stub?array_including(1,2,3)无法确保数

ruby-on-rails - 在 Rspec 中创建方法

我需要理解Rspec中的这行代码。create(:practice,creator:create(:physician,password:"password123",password_confirmation:"password123"),phone:"+1(555)555-5554",office:"+1(555)555-5555",clinic_key:"abc123")这个创建函数是什么。它不是内置在rails或ruby​​函数中。我们有它的文档吗? 最佳答案 看起来create是从FactoryBot调用的。通常你需要创建像

ruby-on-rails - 如何在 sidekiq 中设置作业超时

我遇到了sidekiq的问题:我想为作业设置超时,这意味着当作业的处理时间大于超时时,该作业将停止。我已经搜索了如何在文件sidekiq.yml中设置全局超时配置。但是我想为不同的单独作业设置单独的超时,这意味着定义工作人员的类之一将具有特定的超时配置。你能帮帮我吗?非常感谢。 最佳答案 没有批准的方法可以做到这一点。您无法在线程执行时安全地停止它。您需要更改工作以定期检查它是否应该停止。您可以为您正在进行的任何第3方调用设置网络超时,以便它们超时。 关于ruby-on-rails-如何

ruby - 在 Rakefile 中设置 rspec 2 任务

我有一个看起来像这样的Rakefile:require'rspec/core/rake_task'desc"RunallRSpectests"RSpec::Core::RakeTask.new(:spec)虽然这不起作用。例如,如果我尝试运行“rake-T”,我得到:code/projects/bellybuster[master]%rake-T--trace(in/Users/craig/code/projects/bellybuster)rakeaborted!nosuchfiletoload--rspec/core/rake_task/Users/craig/.rvm/rubie

ruby - RSpec 模拟 :each block

我想使用RSpec模拟来为block提供固定输入。ruby:classParserattr_accessor:extracteddefparse(fname)File.open(fname).eachdo|line|extracted=lineifline=~/^RCSfile:(.*),v$/endendendR规范:describeParserbeforedo@parser=Parser.new@lines=mock("lines")@lines.stub!(:each)File.stub!(:open).and_return(@lines)endit"shouldextracta

ruby-on-rails - rspec 中的多线程 ActiveRecord 请求

我正在尝试在测试中重新创建竞争条件,以便尝试一些解决方案。我发现在我在测试中创建的线程中,ActiveRecord总是为计数返回0,为查找返回nil。例如,表“foos”中有3行:it"whatever"doputsFoo.count5.timesdoThread.newdoputsFoo.countendendend将打印300000test.log显示了预期的查询,预期的6次:SELECTcount(*)AScount_allFROM`active_agents`知道这里发生了什么吗? 最佳答案 我假设ActiveRecord为

ruby - 如何在 rspec 测试中定义一个可以被辅助函数访问的简单全局变量

我不知道如何在rspec测试中使用一个简单的全局变量。这似乎是一个微不足道的功能,但经过多次目击后我还没有找到解决方案。我想要一个可以在整个主规范文件和辅助规范文件中的函数中访问/更改的变量。这是我目前所拥有的:require_relative'spec_helper.rb'require_relative'helpers.rb'let(:concept0){''}describe'ICETesting'dodescribe'step1'doit"Populatessuggestionscorrectly"doconcept0="tg"selectConcept()#inhelperf