2016-04-06 11 views
0

Rails 4 (4.2.6) uygulaması yapıyorum ve şu anda bir 'yer için bazı Minitest testleri belirtmek istiyorum 'Bir Broşür-Harita üzerinde basılan ilgi noktaları temsil eden model. DB olarak, Postgres'i 'pg' gem kullanarak kullanıyoruz (ki bu da yine de testle alakalı olmayacaktır). latitude de boş olmadığı hatayla aşağıdaki sonuçları gibi maalesef bile basit bir test bundle exec rake test:modelsRaylar model testi: HATA: sütununda boş değer [..] null kısıtını ihlal ediyor

class PlaceTest < ActiveSupport::TestCase 
def setup 
    @place = Place.new(latitude: 12, longitude: 52, name: 'foo', categories: 'bar') 
end 

test 'valid place is valid' do 
    assert @place.valid? 
end 

hata yürütülürken, nasıl hata yorumlamak için hiçbir ipucu var şu

PlaceTest#test_valid_place_is_valid: 
ActiveRecord::StatementInvalid: PG::NotNullViolation: ERROR: null value in column "latitude" violates not-null constraint 
DETAIL: Failing row contains (980190962, null, null, 2016-04-06 11:16:08, 2016-04-06 11:16:08, null, null). 
: INSERT INTO "places" ("created_at", "updated_at", "id") VALUES ('2016-04-06 11:16:08', '2016-04-06 11:16:08', 980190962) 

olduğunu herşey. Örnekte db'ye yazılmadığı için veritabanıyla ilgili bir hata olamaz. Yine de hata mesajı bir şekilde bu sese sahip. schema.rb dosyası şuna benzer:

ActiveRecord::Schema.define(version: 20160403170121) do 

enable_extension "plpgsql" 

create_table "descriptions", force: :cascade do |t| 
    t.integer "place_id" 
    t.string "language" 
    t.text  "text" 
    t.datetime "created_at", null: false 
    t.datetime "updated_at", null: false 
end 

add_index "descriptions", ["place_id"], name: "index_descriptions_on_place_id", using: :btree 

create_table "places", force: :cascade do |t| 
    t.float "latitude", null: false 
    t.float "longitude", null: false 
    t.datetime "created_at", null: false 
    t.datetime "updated_at", null: false 
    t.string "name",  null: false 
    t.string "categories", null: false 
end 

    add_foreign_key "descriptions", "places" 
end 

arada: Gayet raylar konsolu içerisinde yer nesnesini başlatın ve .valid? olmadığını kontrol edebilirsiniz. Birisi bana bu hata mesajını yorumlamada yardımcı olabilirse sevinirim. Teşekkürler

Düzenleme: Model dosyamda hiçbir doğrulama uygulamamışım (aslında sth Test sürüşüne devam etmek istiyorum, sadece testler yok t düzgün çalışıyor ...)

cevap

2

Hata bulundu, ilgili YAML dosyası boş place nesneler yumurtlamaya çalıştı. Sorun çözüldü.