我正在阅读Hartl的RoR教程,在rspec测试中有一个块来检查密码是否匹配。在这一栏中是这一行:
expect(@user.has_password?(@attr[:password])).to be_true
失败了。但我知道代码是有效的,因为如果我把这行:
puts @user.has_password?(@attr[:password])
在块中输出“true”。真正让我感到惊讶的是我把这句话放在了一边:
expect(true).to be_true
取代上面的线......并且测试仍然失败。怎么了?
答案 0 :(得分:0)
似乎be_true
已重命名为be_truthy
。尝试以下变体之一:
expect(true).to be true
expect(true).to be_truthy
第一个仅适用于true
。
对于不是false
或nil
的任何内容,第二个。