当我尝试为 rspec 的更改方法编写 oneliner 时,出现以下错误:
预期结果已更改为 nil,但未给出块
这是我的语法:
it { is_expected.to change(user.name).to nil }
Run Code Online (Sandbox Code Playgroud)
什么是正确的语法?
一行语法在这里没有意义。它用于检查对象的属性或方法的返回值。
但在这里你要求检查一个属性是否更改为 nil,这意味着你正在执行一些导致状态更改的操作,并且在该值不是 nil 之前。
对于一行,您无法指定该操作。正确的语法是
it "description" do
expect { "some method call here" }.to change { user.name }.to ...
end
Run Code Online (Sandbox Code Playgroud)
然而,变化通常用于跟踪基于计数器的值的变化。在这里你并不真正需要它。
it "description" do
# here add the method you want to test
subject.do_something
expect(subject.name).to be_nil
end
Run Code Online (Sandbox Code Playgroud)
看:
| 归档时间: |
|
| 查看次数: |
1049 次 |
| 最近记录: |