2011-03-10 2 views
8

다음을 실행합니다.Rails 3 : 간단한 테스트를 실행할 때 Rails가 데이터베이스에 값을 삽입하려고하는 이유는 무엇입니까?

을 내 응용 프로그램 루트 디렉토리에서 가져 와서 얻은 결과는 다음과 같습니다.

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) 

여기에 어떤 현상이 있습니까?

Rails가 데이터베이스에 값을 삽입하려고하는 이유는 무엇입니까?

다음은 test/unit/job_test.rb입니다.

require 'test_helper' 
class JobTest < ActiveSupport::TestCase 
    test "My First Test" do 
    assert false 
    end 
end 

답변

10

이 레일기구처럼 보인다. test/fixtures를 살펴보면 테스트 할 데이터가있는 테스트 데이터베이스를 만들기 위해 레일스에서 ​​생성 된 일부 파일을 볼 수 있습니다. 테스트를 실행하면 레일이 테스트 DB에 삽입됩니다.

+0

고마워요! 실제로 기본 조명기는 비어있어 오류가 발생합니다. –

+0

Rails 4에서 비슷한 문제가 발생했습니다.'rails g ...'실행 후 제약 조건이 추가되었으며 테스트시 오류가 발생했습니다. 새로운 제약 조건을 설명하기 위해 조명기를 업데이트해야했습니다. –

관련 문제