gpt4 book ai didi

ruby-on-rails - RSpec中的 "be_true"和 "be true"有什么区别

转载 作者:数据小太阳 更新时间:2023-10-29 06:37:34 27 4
gpt4 key购买 nike

任何人都可以用简单的例子向我解释 Ruby 中 be_truebe true 之间的区别吗?我还看到 be_truebe_false 更改为 be_truthybe_falsey

我有一个示例,其中 'be_true' 有效,但是当我尝试使用 'be_true''be_truthy' 规范时失败.

我正在使用 RSpec 版本 3.1.7

最佳答案

根据 this thread be_truebe_false 现在称为 be_truthybe_falsy

be_truthbe_truthy 或者 be_falsebe_falsy 之间的基本区别是 be_falsy /be_truthy 如果“预期结果”(即任何对象)(对于 be_falsy )/不是(对于be_truthy)nilfalse,而另一方面 be truebe false 使用 == 来验证您的“预期结果”( bool 对象)等于true/false

rspec expectations' truthiness 的含义是:

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

例子-

对于为真为假:

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

对于 be_truthybe_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

除了nil/true/,您可以在"string" 的位置使用任何其他对象作为"预期结果"false,因为它们已经出现在上面显示的示例中。

关于ruby-on-rails - RSpec中的 "be_true"和 "be true"有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26779937/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com