Dev*_*Raj 15 ruby rspec ruby-on-rails rspec3
任何一个可以请解释一下我一下的区别be_true,并be true用简单的例子红宝石英寸 我也见过be_true并且be_false改为be_truthy和be_falsey
我有一个'be true'工作的例子,但当我尝试使用'be_true'或'be_truthy'规格失败.
我使用的是RSpec 3.1.7版
Sur*_*rya 29
根据这个线程 be_true,be_false现在被称为be_truthy和be_falsy.
之间的基本区别be true和be_truthy或be false和be_falsy是be_falsy/ be_truthy匹配传递,如果"期望的结果"(即任何对象)是(对be_falsy)/ 不(对be_truthy)nil或false,而在另一方面be true和be false使用==来验证你的"预期的结果"(布尔对象)等于true/ false.
从rspec期望的真实性意味着:
expect(actual).to be_truthy # passes if actual is truthy (not nil or false)
expect(actual).to be true # passes if actual == true
expect(actual).to be_falsy # passes if actual is falsy (nil or false)
expect(actual).to be false # passes if actual == false
expect(actual).to be_nil # passes if actual is nil
expect(actual).to_not be_nil # passes if actual is not nil
Run Code Online (Sandbox Code Playgroud)
对于be true和be false:
it { expect(true).to be true } # passes
it { expect("string").to be true } # fails
it { expect(nil).to be true } # fails
it { expect(false).to be true } # fails
it { expect(false).to be false } # passes
it { expect("string").to be false} # fails
it { expect(nil).to be false} # fails
it { expect(true).to be false} # fails
Run Code Online (Sandbox Code Playgroud)
对于be_truthy和be_falsy:
it { expect(true).to be_truthy } # passes
it { expect("string").to be_truthy } # passes
it { expect(nil).to be_truthy } # fails
it { expect(false).to be_truthy } # fails
it { expect(false).to be_falsy } # passes
it { expect(nil).to be_falsy } # passes
it { expect("string").to be_falsy} # fails
it { expect(true).to be_falsy } # fails
Run Code Online (Sandbox Code Playgroud)
您可以在"string"除nil/ true/ 之外的位置使用任何其他对象作为"预期结果" false,因为它们已经存在于上面显示的示例中.
| 归档时间: |
|
| 查看次数: |
5752 次 |
| 最近记录: |