Ruby on Rails TDD 101のどの記事を読むべきですか?
まず、Railsアプリケーションをテストするためのガイドから始めます。
また、Railscastには、さまざまなテストツールの使用方法に関する優れたスクリーンキャストがいくつかあります。
テストには何が必要ですか?
テストが簡単なモデルから始めます。単純なルールは、テストのすべてのifステートメントをカバーする必要があるということです。
メソッドの目的(期待どおりに機能することを確認するため)とすべてのエッジケースをテストする必要があります。
また、テストをしすぎないようにしてください。
どのgem / pluginを使うべきですか?rspecを使用する必要がありますか?他に何か?
開始したら、を使用してくださいTest Unit
。基本を理解してから、rspec
または使用cucumber
してください。
Autotest
真にテスト駆動型になりたい場合に便利なツールです。しかし、それは「いいこと」ではありません。
テストクラスをすべて取得したら、それらをどのように展開しますか?
質問がわからない。通常はテストをデプロイしません。すべてのテストクラスを取得したら、すべてのテストを実行するための単純なタイプの「レイクテスト」を作成します。
TDDは本当にどれくらいの時間を消費しますか?
それは本当に時間を節約します。ラビリンスパズルが好きなら、終わりから始めれば、ほとんどの場合、簡単に解くことができます。TDDと同じです。テスト駆動なしでは、一貫して「次に何をすべきか」を考えています。テスト駆動では、テストは次に何をすべきかを教えてくれます(ロジックが存在しない場合はテストが中断するため、壊れた部分を修正するだけで済みます)。また、バグが減り、長期的には多くの時間を節約できます。
これに関する本を読む必要がありますか、それともそれをいじってオンラインチュートリアルを読むだけですべてを入手できますか?本を読む必要がある場合、どの本を読みますか?
本はいらない。何でも学ぶ最も効率的な方法は、それを実行することです。質問や問題が発生したら、本またはオンラインリソースに戻ってください。これも機敏です。
あなたの例では、テストが必要なものは次のとおりです:連絡先は1つの会社にリンクでき、会社は複数の連絡先を持つことができ、連絡先を作成する方法を作成し、連絡先を会社にリンクできます。
class CompanyTest <Test::Unit
def test_relationship # test associations/relationships
c = companies(:some_company)
assert_equal [a list of contacts], c.contacts # make sure a company can have multiple contacts
end
end
class ContactTest<Test::Unit
def test_relationships
c = contact(:some_contact)
assert_equal some_company, c.company # make sure the contact link to 1 company
end
def test_create/add
# test create contacts, here you need to make sure the contact is created correctly, and linked to company correctly
end
end