2011-03-10 9 views
8

Çalışıyorum: Raylar 3: Rails, basit bir test çalıştırırken neden veri tabanına değer katmaya çalışır?

ruby -I test test/unit/job_test.rb 

uygulama kök dizinimden ve

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) 

Neler oluyor burda?

Rails neden veritabanına değer koymaya çalışıyor?

İşte test/unit/job_test.rb:

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

cevap

10

Raylar fikstürler gibi görünüyor. Test/fikstürlere bakın ve test etmek için test veritabanınızı/verilerinizi tohumlamak için rayların oluşturduğu bazı dosyaları göreceksiniz. Testlerinizi çalıştırdığınızda, raylar bunları test DB'nize ekler.

+0

Teşekkürler! Gerçekten varsayılan armatürler boştur, bu da hataya neden olur. –

+0

Rails 4'te benzer bir sorun vardı. "Raylar g ..." den sonra kısıtlama eklendi ve test sırasında hata atıyordu. Yeni kısıtlamayı dikkate almak için fikstür güncellemek zorunda kaldı. –