2016-10-19 9 views
0

アプリケーションユニットがテストされており、基本機能を検証するロボットを使用した2つのシステムテストがあります。キュウリを使用して実行しているGherkinの.featureファイルとしてのビジネスからの要件(受け入れテスト)の束もあります。キュウリ受け入れテストとしてのユニットテスト

私たちは安心して統合テストを実装し始めました。基本的な機能はすべてうまくいきました。問題は、より詳細なシナリオを実装することです。検証する必要があるものは、DBに保持されず、エンドポイントによって返されません。

これらのシナリオを単体テストとして実装することで、その機能をテストすることは本当に簡単ですが、それが良い方法であるかどうかはわかりません。

答えて

0

私はあなたの質問を「BDDを使用するのと同時にユニットテストを使用してもいいですか?」と解釈します。

私の考えでは、これらはお互いを補う2つのテクニックです。 1つのテクニックを使用した方が簡単な場合は、そのテクニックをその特定のケースで使用してください。

作業用ソフトウェアの配信をサポートするものを使用してください。特定のツールを使用するのではなく、作業ソフトウェアが目標です。

+0

これは私が意味するものではありません。私の質問は、「受入れテストスイートの一環として単体テストを持つことは大丈夫ですか?」ということです。「受入れテストはブラックボックステストでなければなりませんか?単一のユニットがビジネス要件の1つに単独で責任を負う場合は、それを単独でテストするか、とにかくアプリケーション全体をテストする必要がありますか? –

+1

私の答えはイエスです。特定のプロパティの存在を保証するために単体テストを行うことはOKです。あなたの問題は今、信頼の問題に変わりました。ステークホルダーは、単一ユニットテスト(おそらく検証できないテスト)を信頼して、このプロパティが常に真であることを保証します。彼らがこの状況に満足しているなら、それを進めてそれを使用してください。 –

1

自分とビジネスの間に行き来する必要があると思います。通常、ハッピーパス/ネガティブシナリオで機能がエンドツーエンドで動作することを証明するために、いくつかの統合テストが行​​われますが、コストがかかります(時間がかかる、特に統合テストを実行しているとき)。ユニットテストはすべてのシナリオを網羅しています。それをビジネスに伝え、合格基準の1つ1つを統合テストとして実装する代わりに、あなたの判断を信頼する方法を学ぶかもしれません。

0

これらのシナリオを単体テストとして実装することで、その機能をテストすることは本当に簡単ですが、それが良い方法であるかどうかはわかりません。

実装されていない場合は、できるだけ早く実行することをお勧めしますが、テストの対象範囲に注意してください。キュウリを使用してユニットテストの手助けをしても問題はありませんが、ユニットテストをより大きなスコープの受け入れテストにする間違いにはなりません。可能な限り直接的に保管してください。その後、コードはおそらくもっとあるべき

我々はDBに永続化またはエンドポイント

によって返さないされていることを確認する必要があるいくつかの事柄:

あなたはこれらのシナリオのいくつかの複雑さに言及しますさまざまなレベルでテスト可能/保守可能。あなたはいくつかの手法でこれを達成することができます。使用する言語によっては、mockito spyのようなツールを使用して、オブジェクトのやりとりを偵察することができます。そうしないと、チェックする方法はありませんが、単位テストや模擬テストなど適切なテストスコープで行うのが賢明です。

また、さまざまなテストレベルで特定のフローのさまざまな部分をカバーすると、それは問題ないと考えてください。理想的には、単体テストでそのほとんどをカバーします。

単体テストでカバーされている最も複雑なユニットの部分を保ちながら、より高いレベルの受け入れシナリオを維持して、ビジネスでは依頼しますが、テストでは深いアサーションは行いません。

関連する問題