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

Mis*_*hko 8 testing unit-testing ruby-on-rails ruby-on-rails-3

我跑:

ruby -I test test/unit/job_test.rb
Run Code Online (Sandbox Code Playgroud)

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

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)
Run Code Online (Sandbox Code Playgroud)

这里发生了什么 ?

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

这是test/unit/job_test.rb:

require 'test_helper'
class JobTest < ActiveSupport::TestCase
  test "My First Test" do
    assert false
  end
end
Run Code Online (Sandbox Code Playgroud)

egg*_*ie5 10

好像这是Rails灯具.查看测试/夹具,您将看到rails生成的一些文件,用于测试数据以及要测试的数据.运行测试时,rails会将它们插入测试数据库中.