私はレールプロジェクトに取り組んでおり、レール上に新しいものがあり、rspecを使用してモデルのモデル関係とメソッドをテストしたいと思います。私は、この私のモデルとの関係は、このRspecを使用したモデル内の関係とメソッドのテスト
class Idea < ActiveRecord::Base
belongs_to :person
belongs_to :company
has_many :votes
validates_presence_of :title, :description
def published?
if self.status == "published"
return true
else
return false
end
end
def image_present
if self.image_url
return self.image_url
else
return "/images/image_not_found.jpg"
end
end
def voted
self.votes.present?
end
end
マイidea_spec.rbファイルのようなもので、どのように行うことができますが、shoulda-マッチャ(https://github.com/thoughtbot/shoulda-を使用する場合は
require 'spec_helper'
describe Idea do
it "should have title" do
Idea.new(:title=>'hello',:description=>'some_desc').should be_valid
end
it "should have description" do
Idea.new(:title=>'hello',:description=>'some_desc').should be_valid
end
end
*あなたが書いたコードの仕様書のみを書くことができます。フレームワークが提供する機能のテストを追加することは良い考えではありません。 – Swanand
@ Swanandのコメントに一部同意しますが、これはもう少し微妙です。関連(フレームワークによって提供される)と検証(フレームワークによって提供される)との間には基本的な違いがあります。アソシエーションは構造であり、テストされるべき行動をサポートするためにのみ存在する必要があるため、直接テストする必要はありません。ただし、検証は動作であり、テストする必要があります。私の2セント。 –
@DavidChelimsky - もちろん、私は同意します。私の唯一の懸案事項は、検証はここではDSLに似ており、レールによって提供され、レールが完成した時点ですでにテストされていたということでした。しかし、私はあなたの言葉を取るでしょう(私はすでに、RSpecの本を読んで実際にやった)。 – Swanand