之间是否存在任何差异:
something.should == true
和
something.should be_true
答案 0 :(得分:3)
惯例是:expect(something).to be_true
但是如果使用得当没有区别。期望== true
的某些内容只应针对表达式进行评估。
Rspec测试:
describe "is the equation true? " do
let!(:add) { 5+5 == 10 }
it "be_true" do
add.should be_true #passes
end
it "expect be_true" do
expect(add).to be_true #passes
end
it "== true" do
add.should == true #passes
end
end
字符串更新:
字符串不是== true
因此它会失败,但会以be_true
传递,因为false
或nil
以外的任何内容都被视为truthy
。 但是,这不是您检查string
。
查看此示例,了解如何正确检查string
中的值:
str = "happy dance!"
要查找文字是否在string
中,您可以使用:expect(str).to include("happy dance!")
答案 1 :(得分:0)
提供给这个问题的答案是错误的,如下所示,第一个测试是对平等的测试,而第二个测试是对真实性的测试,第一个测试将失败,因为something != true
而后者将通过因为任何事情红宝石中的nil
或false
的订单是truthy
require 'rspec'
describe "do something" do
let(:something) { "hey" }
it { something.should == true }
it { something.should be_true }
end
答案 2 :(得分:-1)
不,没有区别。
后者是前者的语法糖。