2016-12-24 9 views
0

すべてのキャンペーンにURLがあるプロモーションモデルをユニットテストする必要があります。プロモーションとreference_linkの間には多様な関連があります。参考リンクの固定具 reference_link: linkable: fix_1 (PromoCode)レール内の治具との多形関連のユニットテスト4

プロモーションのフィクスチャに本当にURLが含まれていることをどのようにして確信しますか?プロモーションテストヘルパー

test "should have a URL associated with the promo code" do 
promo_code = promo_codes(:fix_1) 
promo_code.reference_link.url = nil 
assert_not promo_code.valid? 
promo_code2 = promo_codes(:fix_2) 
assert promo_code2.valid? 

promocode.rb

クラスPromoCode <のActiveRecord ::ベース

belongs_to :reward 
has_one :reference_link, as: :linkable, dependent: :destroy 

validates :email, presence: true 
validates :code, presence: true 

reference_link.rb

クラスReferenceLink <はActiveRecord ::ベースbelongs_toの :リンク可能な、多型:真、タッチ:真

validates :link_name, presence: true 
validates :link_url, presence: true 

validates_format_of :link_url, :with => /\A#{URI::regexp(['http', 'https'])}\z/ 

validates_length_of :link_url,:link_name, :maximum => 255 

エンド

答えて

0

それはあなたがほとんどそれが正しいだ、簡単です。

# promo_codes.yml 
promo_1: 
    email: '[email protected]' 
    name: 'Foobar' 

# reference_links.yml 
reference_1: 
    linkable: promo_1 
    link_name: 'lorem' 
    link_url: 'http://loremipsum.com' 

テスト:まず、備品が正しく設定されていることを確認

# promotion_test.rb 
test "should have a URL associated with the promo code" do 
    promo_code = promo_codes(:promo_1) 

    assert_eq true, promo_code.reference_link.present? 
end 

は、そのファイルの命名が使用することをRailsの大会の重要な部分であることを忘れないでください。

関連する問題