Rails:使用ActiveRecord进行测试失败:: StatementInvalid:PG :: NotNullViolation:ERROR

时间:2015-10-12 09:14:53

标签: ruby-on-rails ruby testing tdd

我有一个非常简单的用户模型,想要测试它:

class CreateUsers < ActiveRecord::Migration
  def change
    create_table :users do |t|
      t.string :name
      t.string :email

      t.timestamps null: false
    end
  end
end

以下是我在test / models / user_test.rb中的内容:

require 'test_helper'

class UserTest < ActiveSupport::TestCase

  test "shoudl always pass" do
    assert true
  end

end

命令rake test抛出以下错误:

  1) Error:
UserTest#test_shoudl_always_pass:
ActiveRecord::StatementInvalid: PG::NotNullViolation: ERROR:  null value in column "name" violates not-null constraint
DETAIL:  Failing row contains (980190962, null, null, null, 2015-10-12 09:10:40, 2015-10-12 09:10:40).
: INSERT INTO "keywords" ("created_at", "updated_at", "id") VALUES ('2015-10-12 09:10:40', '2015-10-12 09:10:40', 980190962)

为什么我在几乎空的测试用例中遇到如此奇怪的错误以及如何修复它?

2 个答案:

答案 0 :(得分:3)

解决!在test_helper.rb

中注释了行ILine

答案 1 :(得分:1)

通常更新你的灯具/ users.yml可以解决这个问题。要么将它们注释掉,要么确保它们都创建具有唯一名称的记录