Ruby on rails Rails 3:为什么Rails在运行简单测试时尝试向数据库插入值?

Ruby on rails Rails 3:为什么Rails在运行简单测试时尝试向数据库插入值?,ruby-on-rails,unit-testing,ruby-on-rails-3,testing,Ruby On Rails,Unit Testing,Ruby On Rails 3,Testing,我运行: 从我的应用程序根目录,我得到: ruby -I test test/unit/job_test.rb 这是怎么回事 为什么Rails尝试向数据库插入值 下面是test/unit/job\u test.rb: Loaded suite test/unit/job_test Started E Finished in 2.046875 seconds. 1) Error: test_My_First_Test(JobTest): ActiveRecord::RecordNo

我运行:

从我的应用程序根目录,我得到:

ruby -I test test/unit/job_test.rb
这是怎么回事

为什么Rails尝试向数据库插入值

下面是
test/unit/job\u test.rb

Loaded suite test/unit/job_test
Started
E
Finished in 2.046875 seconds.

1) Error:
   test_My_First_Test(JobTest):
   ActiveRecord::RecordNotUnique: Mysql2::Error: Duplicate entry '' 
   for key 'name':
   INSERT INTO `ac_buyers` (`created_at`, `updated_at`, `id`) VALUES 
   ('2011-03-10 06:04:06', '2011-03-10 06:04:06', 298486374)
需要“测试助手”
类JobTest
看起来这是Rails固定装置。查看test/Fixture,您将看到rails生成的一些文件,这些文件用于为您的测试数据库种子,其中包含要测试的数据。运行测试时,rails会将它们插入测试数据库。

谢谢!实际上,默认的fixture是空的,这导致了错误。Rails 4中也有类似的问题。在运行rails g…之后添加了约束,并在测试时抛出错误。必须更新夹具以考虑新的约束。
require 'test_helper'
class JobTest < ActiveSupport::TestCase
  test "My First Test" do
    assert false
  end
end