私はMichael Hartlのレッスンチュートリアルを見ています。6.2.2 UserTestには、 'name should be present'というテストが含まれています。テストコードを'assert_not user.valid?' vs. 'assert user.invalid?'
test 'email should be present' do
@user.email = " "
assert_not user.valid?
end
を含み、テストが失敗した場合、次のように出力される:私は
test 'email should be present' do
@user.email = " "
assert user.invalid?
end
にアサートを変更した場合は失敗テスト出力が
あるFAIL["test_name_should_be_present", UserTest, 0.10366088798036799]
test_name_should_be_present#UserTest (0.10s)
Expected true to be nil or false
FAIL["test_name_should_be_present", UserTest, 0.11991263600066304]
test_name_should_be_present#UserTest (0.12s)
Expected false to be truthy.
Are 1つのテストが失敗し、もう1つが失敗する状況、またはこれらが交換可能な状況がありますか? 'assert .invalid?'私にはもっと自然なようです。
いいえ、電子メールの存在を検証するコードが書き込まれる前にテストが記述されているため、テストは失敗します。
あなたのテストから完全なコードを表示しますか? –
また、 'refute user.valid? 'もありますが、私はこの1つについてたくさんの気持ちを持っています:) –