当我尝试为rspec的更改方法编写oneliner时,我收到此错误:
预期结果已变为零,但没有给出阻止
这是我的语法:
it { is_expected.to change(user.name).to nil }
什么是正确的语法?
答案 0 :(得分:1)
单行语法在这里没有意义。它用于检查对象的属性或方法返回值。
但是在这里你要求检查一个属性是否改为nil,这意味着你正在执行一些导致状态改变的动作,并且在值不是nil之前。
使用单行,您无法指定该操作。正确的语法是
it "description" do
expect { "some method call here" }.to change { user.name }.to ...
end
但是,更改通常用于跟踪基于计数器的值的更改。在这里,你真的不需要它。
it "description" do
# here add the method you want to test
subject.do_something
expect(subject.name).to be_nil
end
请参阅: