San*_*khe 2 ruby ruby-on-rails-3 rspec3
我有一个要在各个地方重复使用的主题块。
subject(:stubbed_data) do
expect(response.body).to eq(dynamic_var)
end
Run Code Online (Sandbox Code Playgroud)
dynamic_var对于不同的测试用例,变量将有所不同。有什么方法可以subbed_data用参数调用主题,以便为dynamic_var变量提供动态值?
您不应该将参数传递给subject。而且,顺便说一下,在这里断言是错误的地方(诸如之类的东西expect),它们需要在it块内完成。但是,您可以在let块内定义(并重新定义)依赖项,如下所示:
class MyClass
attr_reader :arg
def initialize(arg)
@arg = arg
end
end
RSpec.describe MyClass do
subject { MyClass.new(dynamic) }
let(:dynamic) { 'default value' }
context 'it works with default value' do
it { expect(subject.arg).to eq 'default value' }
end
context 'it works with dynamic value' do
let(:dynamic) { 'dynamic value' }
it { expect(subject.arg).to eq 'dynamic value' }
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3179 次 |
| 最近记录: |