我正在编写一个Ruby gem,可以访问基于Web的API的功能。我需要设置一个对象,该对象将在每次运行测试时初始化并登录API。 before(:all)
仍然过多,因为它会为每个描述块运行一次,而我想要的是为所有测试文件普遍设置的内容。
更新
就像后续一样,为了让我在测试中使用的对象可用,我不得不像这样添加一个设置到rspec配置
config.add_setting :client
config.before(:suite) do
RSpec.configuration.client = TDAmeritradeApi::Client.new
RSpec.configuration.client.login
end
然后在describe块中我这样做:
let(:client) { RSpec.configuration.client }
答案 0 :(得分:2)
我相信您正在寻找before(:suite)
,您可以在spec_helper.rb
的配置部分使用它。
RSpec.configure do |config|
config.before(:suite) do
# API login
end
end
答案 1 :(得分:1)
在运行任何示例组之前,您可以使用before(:suite)
运行代码块。这应该在RSpec.configure
来源:http://rubydoc.info/github/rspec/rspec-core/RSpec/Core/Hooks