关于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
如您所见,before(:each)
和after(:each)
在每个测试文件中都是相同的。所以,问题是我是否可以将它们写在一个适合所有测试文件的地方。
如果可以使用N1 - 如果在某个文件中需要在before(:each)
或after(:each)
中应用其他步骤会怎样?新声明是否会取代或增强以前的声明?
rescue
部分在其他文件中的同一文件和中的每个测试中也相同。将它放在一个地方的正确方法是什么?
关于如何正确行事的任何其他相关建议将受到欢迎。
谢谢!
答案 0 :(得分:1)
如果您希望每次测试都触发这些断言,那么您应该配置全局“around”回调:
RSpec.configure do |config|
config.around do
assert_no_application_errors
end
end
只需将其添加到spec / spec_helper.rb中,并在每个规范文件中都需要。
有关“around”钩子的更多信息,请阅读:http://relishapp.com/rspec/rspec-core/v/2-6/dir/hooks/around-hooks