2012-01-05 9 views
2

類似の質問は以前に回答されていましたが、問題は解決しませんでした。ベストプラクティスのテスト:CRUD用api

私は、作成、読み取り、更新、および削除の方法でAPIをテストしています。各機能を個別にテストすることが最善の方法と考えられます。しかし、

テストするには、私は読む必要があります。 読み取りをテストするには、作成する必要があります。 アップデートをテストするには、作成して読み込む必要があります。 削除をテストします。私は作成する必要があります!

私はこのAPI以外の他の(例えば、下位層API)メカニズムを検証していません。

この場合、すべてを使って1つの長いテストを書くべきですか?または4つの異なるテスト。それぞれ特別な設定とティアダウンロジックを備えています。

おかげ

答えて

1

これは非常に主観的であるが、

  • は可読性
  • を向上させる可能性のあるエラー
  • を見つけやすくなり
  • を維持するために容易になるだろうと私は、4つの異なるテストを記述します

可読性

すべてをテストすると、あなたのテストメソッドの名前は何ですか?私はそれが簡単にエラーに読みやすくして

を見つけCreateShouldCreateARecord代わり

TestCRUDの形でtestmethodsを読むために見つけ、何が悪かったのかを知ることが容易です。繰り返しになりますが、1つのモノリシック・メソッドでは、TestCRUDメソッドが失敗し、ドリルダウンして、誤って実装された読み取りであることがわかります。

+0

私はたくさんのコードが好きではありません。より複雑なセットアップ* 4とティアダウンロジック* 4のために。しかし、これは正確な問題を釘付けにするための価格だと思われる。たとえば、testReadが失敗した場合は、セットアップが失敗した(つまり書き込みに失敗した)か、読み込みに失敗したことを知る必要があります。 –

+0

@AsadIqbal - すべてと同様、常にトレードオフがあります。この場合と私の個人的な好み、それはそれの価値がある。 –

+0

私はエラーの位置を特定することに同意しません。私たちはOPの問題について覚えている場合、私はテストCreateShouldCreateARecordが失敗するのを見て、どのように私はそれが誤ってレコードを作成していたか、または多分ちょうど読んで失敗し、私に偽陰性を与えたか知っていますか?私は両方の機能とデバッグのコードを見て終わります。もしそうなら、私は何も得られませんが、私はより多くのセットアップ、ティアダウンなどを書く必要があります。 –

関連する問題