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:models
Raylar 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 ...)