これらのシナリオを単体テストとして実装することで、その機能をテストすることは本当に簡単ですが、それが良い方法であるかどうかはわかりません。
実装されていない場合は、できるだけ早く実行することをお勧めしますが、テストの対象範囲に注意してください。キュウリを使用してユニットテストの手助けをしても問題はありませんが、ユニットテストをより大きなスコープの受け入れテストにする間違いにはなりません。可能な限り直接的に保管してください。その後、コードはおそらくもっとあるべき
我々はDBに永続化またはエンドポイント
によって返さないされていることを確認する必要があるいくつかの事柄:
あなたはこれらのシナリオのいくつかの複雑さに言及しますさまざまなレベルでテスト可能/保守可能。あなたはいくつかの手法でこれを達成することができます。使用する言語によっては、mockito spyのようなツールを使用して、オブジェクトのやりとりを偵察することができます。そうしないと、チェックする方法はありませんが、単位テストや模擬テストなど適切なテストスコープで行うのが賢明です。
また、さまざまなテストレベルで特定のフローのさまざまな部分をカバーすると、それは問題ないと考えてください。理想的には、単体テストでそのほとんどをカバーします。
単体テストでカバーされている最も複雑なユニットの部分を保ちながら、より高いレベルの受け入れシナリオを維持して、ビジネスでは依頼しますが、テストでは深いアサーションは行いません。
これは私が意味するものではありません。私の質問は、「受入れテストスイートの一環として単体テストを持つことは大丈夫ですか?」ということです。「受入れテストはブラックボックステストでなければなりませんか?単一のユニットがビジネス要件の1つに単独で責任を負う場合は、それを単独でテストするか、とにかくアプリケーション全体をテストする必要がありますか? –
私の答えはイエスです。特定のプロパティの存在を保証するために単体テストを行うことはOKです。あなたの問題は今、信頼の問題に変わりました。ステークホルダーは、単一ユニットテスト(おそらく検証できないテスト)を信頼して、このプロパティが常に真であることを保証します。彼らがこの状況に満足しているなら、それを進めてそれを使用してください。 –