それらが代替手段であるというクリスの答えに反対しなければなりません。私は Rails アプリケーションで Shoulda と Rspec を一緒に使用していますが、これらは互いに補完し合っています。
この組み合わせにより、関連付けや検証などの反復的なものに対して簡潔な 1 行の単体テストを記述でき、さらに複雑な仕様用の完全な rspec スイートを使用できます。競合することなく、両方の長所を最大限に活用できます。
Rspecと一緒にインストールする方法を示すShoulda READMEを確認してください。「一般的な Rails 機能をテストする Test::Unit および RSpec 互換のワンライナーを提供します。そうしないと、これらのテストははるかに長く、より複雑になり、エラーが発生しやすくなります。」
編集(例):
仕様の一番上で、簡潔で読みやすい Class 関係と検証テストを常に宣言します。
describe Component do
context 'relationships' do
it { should belong_to(:technology)}
it { should have_many(:system_components) }
it { should have_and_belong_to_many(:variables) }
it { should have_many(:images).dependent(:destroy) }
it { should have_many(:documents).dependent(:destroy) }
end
context 'validations' do
it { should validate_presence_of(:make) }
it { should validate_presence_of(:model) }
it { should ensure_length_of(:name).is_at_most(100) }
it { should validate_presence_of(:technology_id) }
end
end
次に、仕様の残りの部分には、Rspec から派生したモックとスタブを使用する、より複雑なテストが含まれます。