Rails 初心者です。Rspec を習得すべく、下記のサイトで学習しています。
https://leanpub.com/everydayrailsrspec-jp/read
下記の単純な Contact モデルに対して、
ruby
1class Contact < ActiveRecord::Base 2 has_many :phones 3 accepts_nested_attributes_for :phones 4 5 validates :firstname, presence: true 6 validates :lastname, presence: true 7 validates :email, presence: true, uniqueness: true 8 9 def name 10 [firstname, lastname].join(' ') 11 end 12 13 def self.by_letter(letter) 14 where("lastname LIKE ?", "#{letter}%").order(:lastname) 15 end 16end
サンプルとして下記のようなスペックが書かれている・・・
ruby
1describe Contact, type: :model do 2it "is invalid without a firstname" do 3 contact = Contact.new(firstname: nil) 4 expect(contact.errors[:firstname]).to include("can't be blank") 5end
のですが、エラーメッセージをチェックする、というのに違和感があり、あれこれ検索したところ、下記でも可能なことを知りました。
ruby
1it "is invalid without a firstname" do 2 should validate_presence_of :firstname 3end
または
ruby
1it "is invalid without a firstname" do 2 is_expected.to validate_presence_of :firstname 3end
エラーメッセージをチェックする方法のメリットを考えてみたのですが、思い当たりません。
実際、どちらの書き方がよいでしょうか。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/12/27 01:19