0

シンプルな UserTest を実行しようとしています

require 'test_helper'

class UserTest < ActiveSupport::TestCase

  fixtures :users

  test "user attributes must not be empty" do
    user = users(:valid_user)
    assert user.invalid?
    assert user.errors[:nome].any?
    assert user.errors[:cognome].any?
    assert user.errors[:localita].any?
    assert user.errors[:provincia].any?
    assert user.errors[:nazione].any?
    assert user.errors[:cap].any?
    assert user.errors[:indirizzo].any?
    assert user.errors[:civico].any?
    assert user.errors[:telefono].any?
    assert user.errors[:mail].any?
    assert user.errors[:username].any?
    assert user.errors[:password].any?
  end

end

このusers.yamlで

valid_user:
  nome: prova
  cognome: prova
  localita: prova
  provincia: prova
  nazione: prova
  cap: 00000
  indirizzo: strada di prova
  civico: 1
  telefono: 1111111111
  mail: prova@prova.com
  username: prova
  password: prova

しかし、それはこのエラーを返します:

ロードされたスイート /var/lib/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/rake_test_loader 開始 F 0.182523 秒で終了しました。

1) 失敗: test_user_attributes_must_not_be_empty(UserTest) [../unit/user_test.rb: 10]: アサーションに失敗しました。メッセージはありません。

1 回のテスト、2 回のアサーション、1 回の失敗、0 回のエラー、0 回のスキップ

どうしたの?

4

1 に答える 1

1

まあ、失敗したアサーションは

assert user.errors[:nome].any?

これは、属性 :nome にエラーがないことを意味します

なぜその属性にエラーがあるべきだと主張しているのかは、私にとって完全な謎です

多分あなたは使いたかったerrors[:nome].none?ですか?

于 2012-07-10T09:21:44.343 に答える