5

İki model arasında bir ilişki için bir test yapmalı mıyım?Modeller arasında ilişki kurmalı mıyım?

Bu kodu ilk Rails projelerimden birinde buldum ve ilişkilendirmenin başarısızlıktan ziyade bir hataya neden olmamasından dolayı bu doğru görünmüyor. Peki, bunları nasıl ve nerede doğru olarak test ederim?

require 'test_helper' 

class VocabTest < ActiveSupport::TestCase 

    test "Must have 'belongs_to user' association" do 
    assert @vocab.user 
    end 
end 

cevap

6

Tüm kurulumu doğru yaptığımı onaylamak için modeller arasındaki ilişkileri test etme eğilimindeyim. İlişkileri test etmenin gerçekten kolay bir yolu shoulda.

Sen kuyunun olarak test dosyaları daha okunabilir hale getirmek için mümkün olacaktır

require 'test_helper' 

class VocabTest < ActiveSupport::TestCase 

    test "associations" do 
    should belong_to :user 
    end 

end 
3

Hayır, siz (amacınız tamamen uygulamayı test etmek bile, özellikle birim test dernekler gerekmez hangi malısın). Dernekler sadece uygulama; Davranışları desteklemek için varlar ve bu davranışı test etmek her zaman derneklerin varlığını tam olarak test eder. Derneklerin ayrı birim testleri herhangi bir değer eklemez.

Denemeye dayalı geliştirme yapıyorsanız ve bir ilişkilendirme gerektiren bazı davranışların tam ortasında bulunuyorsanız, derleme için birim sınaması yazmanız, bunu iletmeniz ve bitirmek için geri dönmeniz yararlı olabilir. davranış testi. Rails'in mevcut modellere bir birlik katması ya da yeni bir model eklemesi nedeniyle, normalde buna ihtiyacım olduğunu anlayamıyorum, oldukça basittir, ancak bazı kişiler ara testlerin desteğini sever. Ancak, davranış uygulandıktan sonra, herhangi bir gereksiz test olarak derneğin testini silerdim.

this answer ve this answer'da ActiveRecord modellerinin çeşitli yönlerini doğrudan test etmenin yararı hakkında daha fazla yazdım.

İlgili konular