私はカスタムSQLクエリを作成しましたが、それが機能することを実証するために単体テストを作成したいと思います。 SQLDeveloperでテストしましたが、テストデータベース上で実行したいときに機能しますが、後でこのコードを維持する必要がある人に単体テストを残したいと思います。SQLクエリを実行するメソッドをテストする方法
私の考えは、上記の基準とし1を満たしていないそのうちの3つ4枚の請求書を作成することでした。私が立ち往生しているところは、クエリが1つのレスポンスだけを返すかどうかをチェックする方法です。クエリの1つの行が出ていることをどのようにテストするのですか?私はモデルを埋めるためにこれらの請求書にFactoryGirlと&旅行を作成する上で意図された
明確化 。ウィルはまだ動作しますか?
一般に、単体テストは外部サービスに依存すべきではありません。典型的な単体テストは、テストデータベースからの応答を疑似し、返されたデータの処理が適切に行われているかどうかをテストします。これは、そのデータベースに依存する単体テストを作成すると、データベース実装を変更するたびに単体テストを変更する必要があるためです。これは単なる単体テストではなく、統合テストです。 TLDR:これを行うことはできますが、それは悪い考えです。さらに詳しい情報はこちら:http://stackoverflow.com/questions/10752/what-is-the-difference-between-integration-and-unit-tests – nhouser9
なぜ単体テストがデータベースと対話できないのか分かりません。 db実装を変更することは、実際には起こりそうにないため、実際には問題にはならず、そうであれば、このテストはデータベースに取り除かれます。 –
@BSeven単体テストが外部サービスと通信を開始するとき、単体テストではありません。これらは統合テストであり、個別に管理する必要があります。 – nhouser9