3

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).

4

2 に答える 2

5

getとのテストを書きますcreate。はい:

  • 意図的にテストしている動作と、偶然にテストしている動作を簡単に分離できます
  • 他の方法ではカバーされない障害条件やその他のシナリオのテストが容易になります
  • /の実装をdelete/updateを使用しないgetように変更しても、まだ/createをテストしていることを意味します。getcreate

理想的には、テスト セットを作成し、「下位」レベルでデータをチェックするように (あまり夢中にならずに) 試みます。たとえば、メモリ内データベースへの直接アクセスを実行します。そうすれば、「エンティティを作成すると、データベース内のデータは {this} のようになります」(フェッチするときも同様) を実際にテストできます。作成して同じ結果が得られるだけでも、ブラック ボックステストとしては問題ありませんが、通常、単体テストはよりホワイト ボックスのようなものだと考えています。

于 2013-03-08T17:36:12.843 に答える
1

すべてのパブリック メソッドの単体テストを作成する必要がありますか? はい

パブリック メソッドごとにテスト ケースを作成することをお勧めします。削除操作をテストするには、最初にcreate testを呼び出してから、 delete testメソッドを呼び出す必要があります。このようにして、削除テスト メソッドは独立し、考えられるすべてのシナリオをテストできます。

于 2013-03-08T17:39:15.097 に答える