我正在查看 ol hartl 教程,尽管他对测试有点疯狂,但到目前为止,我一直能够遵循,直到我完成了这个让我有点困惑的测试。我想知道你们中的一位更有经验的开发人员是否可以分享他对这个测试的逻辑:
describe "with invalid password" do
let(:user_for_invalid_password) { found_user.authenticate("invalid") }
it { should_not eq user_for_invalid_password }
specify { expect(user_for_invalid_password).to be_false }
end
对我来说,看起来他正在创建一个变量,该变量定义为具有无效身份验证的用户的返回值。
然后他接受了这个变量并说它不应该等于它自己。
然后他还说同一个变量应该是假的。
为了透明,这里是完整的测试:
describe "return value of authenticate method" do
before { @user.save }
let(:found_user) { User.find_by(email: @user.email) }
describe "with valid password" do
it { should eq found_user.authenticate(@user.password) }
end
describe "with invalid password" do
let(:user_for_invalid_password) { found_user.authenticate("invalid") }
it { should_not eq user_for_invalid_password }
specify { expect(user_for_invalid_password).to be_false }
end
end
有人可以解释我在哪里误解了吗?谢谢!!