私はMichael Hartlの本を読んでいます。私はセクション6.3.3にいます。私たちが達成しようとしていることを理解しています。ただし、私には、これらの仕様のうち 2 つが同じことをテストしているように見えます。
user_spec.rb から: http://ruby.railstutorial.org/chapters/modeling-users#code-authenticate_spec
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 == found_user.authenticate(@user.password) }
end
describe "with invalid password" do
let(:user_for_invalid_password) { found_user.authenticate("invalid") }
it { should_not == user_for_invalid_password } #1
specify { user_for_invalid_password.should be_false } #2
end
end
仕様 1 と 2 の両方が、ユーザーのパスワードが正しくない場合に DB がユーザーを検証してはならないことをテストしていませんか? これらのテストはどのように違うのですか?