Should I write unit-test for every public method? For example I have a CRUD service, so I have
create, read, update, delete
methods. But when I write test to delete
or update
methods, I implicitly test read
and create
methods (for example to test the update
method first I need create an entity(create
), then retrieve it (read
), then update
it and then retrieve it again to ensure it changed).
質問する
807 次
2 に答える
5
get
とのテストを書きますcreate
。はい:
- 意図的にテストしている動作と、偶然にテストしている動作を簡単に分離できます
- 他の方法ではカバーされない障害条件やその他のシナリオのテストが容易になります
- /の実装を
delete
/update
を使用しないget
ように変更しても、まだ/create
をテストしていることを意味します。get
create
理想的には、テスト セットを作成し、「下位」レベルでデータをチェックするように (あまり夢中にならずに) 試みます。たとえば、メモリ内データベースへの直接アクセスを実行します。そうすれば、「エンティティを作成すると、データベース内のデータは {this} のようになります」(フェッチするときも同様) を実際にテストできます。作成して同じ結果が得られるだけでも、ブラック ボックステストとしては問題ありませんが、通常、単体テストはよりホワイト ボックスのようなものだと考えています。
于 2013-03-08T17:36:12.843 に答える
1
すべてのパブリック メソッドの単体テストを作成する必要がありますか? はい
パブリック メソッドごとにテスト ケースを作成することをお勧めします。削除操作をテストするには、最初にcreate testを呼び出してから、 delete testメソッドを呼び出す必要があります。このようにして、削除テスト メソッドは独立し、考えられるすべてのシナリオをテストできます。
于 2013-03-08T17:39:15.097 に答える