轨道中的单元测试问题

时间:2012-07-10 09:16:28

标签: ruby-on-rails ruby-on-rails-3 unit-testing

我正在尝试运行我的简单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次跳过

有什么问题?

1 个答案:

答案 0 :(得分:1)

好吧,失败的断言是

assert user.errors[:nome].any?

表示属性没有错误:nome

为什么你断言该属性应该存在错误对我来说是个完全的谜团

也许您想使用errors[:nome].none?