在rspec测试中实现前置/后置条件的更好方法



这都是关于OOP+AOP方法(我很熟悉(和rspec方法(我不太熟悉(。这是我的典型测试代码。代码存在于每个测试文件中(其中有很多(:

describe "Testing... " do
before(:each) do
  assert_no_application_errors
end
after(:each) do
  assert_no_application_errors
end
it "Test1" do
  begin
    ...
  rescue => e
    puts e, e.backtrace
    print_log
    raise
  end
end # it
...
end # describe
  1. 正如您所看到的,before(:each)after(:each)在每个测试文件中都是相同的。所以,第四个问题是,我是否可以把它们写在一个地方,这对所有的测试文件都有好处。

  2. 如果N1是可能的——如果在某些文件中需要在before(:each)after(:each)中应用额外的步骤,会发生什么?新的宣言会取代或加强以前的宣言吗?

  3. rescue部分在同一文件和其他文件中的每个测试中也是相同的。把它放在一个地方的正确方法是什么?

  4. 任何其他关于如何把事情做好的相关建议都将非常受欢迎。

谢谢!

如果您希望为每个测试触发这些断言,那么您应该配置一个全局"around"回调:

RSpec.configure do |config|
  config.around do
    assert_no_application_errors
  end
end

只需将其添加到您的spec/spec_helper.rb中,并在每个spec文件中进行require即可。

有关"around"hook的更多信息,请阅读以下内容:http://relishapp.com/rspec/rspec-core/v/2-6/dir/hooks/around-hooks

相关内容

  • 没有找到相关文章

最新更新