0

次のコードがあります。

test "unique title" do
    product = Product.new(title:       products(:ruby).title,
                          description: 'yyy',
                          price:       1,
                          image_url:   "fred.gif")

    assert !product.save
    puts product.errors[:title].join('; ')
    assert_equal "has already been taken", product.errors[:title].join('; ')
  end

テストに合格します。しかし、なぜ assert_equal がエラーを引き起こさないのか理解できません。

「すでに取得済み」は次と等しくないため:ProductTest#test_unique_titlehas already been taken

これは puts ステートメントの出力です。

なぜこのテストに合格するのですか?

4

2 に答える 2

2

出力に改行がないため、混乱していると思います。ProductTest#test_unique_title は、実行中のテスト メソッドを記述し、既に実行されています。これはプットの結果であるため、テストに合格する必要があります。

于 2013-06-06T01:42:58.573 に答える