2017-09-19 2 views
0

私が見てきた人々は、などの基本的なSQL機能をテストするJUnitテストを作成します。ユニットテストの基本的なSQL機能はなぜ必要ですか?その行から変数が正しく取得されていることの表</p> <p>選択に</p> <p>インサート1行目:

「SQLが動作するかどうか」をテストする必要がある理由はわかりません。

通常、SQLを開発するためのパスは、データを含むデータベースに対して作成し、結果が期待どおりかどうかを確認することです。十分なエッジケースをカバーしていることを確認するまで、さらに進んでより多くのデータに対してSQLを検証することができます。

このレベルのテストでは十分ではありませんか?これらの基本的なJunitテストは、この方法とどのように比較できますか?一般的には少し激しいようです

+0

ユニットテストは時々宗教戦闘になることがあります。ビジネスコストを犠牲にしても、100%のコードカバレッジの目標を追うことを主張する人もいます。いくつかのコンポーネントは意味のあるロジックを含んでおらず、プログラマが行うことができる他のものと比較してそれらをテストする価値は非常に低い*です。一方、私は確かにダウンタイムの*トン*があったプロジェクトで自分自身を見つけたと私は考えた、ええ、一体なぜですか? – David

+0

データベースが関わっている場合は、むしろ統合テストと呼んでいます。単体テストの場合は、簡単なクエリを実行するとデータベースドライバで正しい呼び出しが作成されることをテストします。 –

答えて

0

は、私は彼らがより複雑に作られている場合、注意が他のものを壊さないために取られることを保証するために、単純なのthatsをテストするために合理的であることができると思います。テストの作成はドキュメントの一種と考えられています。私はこの呼び出しが、私が要求したSQLの1行だけを返すことを期待しています。誰かがそこに論理を入れようとすると、単体テストが中断され、彼らがしていることが潜在的にそれに依存する他のコードを壊す可能性があると考えるでしょう。

+0

明らかに、誰かがSQLまたは基礎となるテーブルを変更したかどうかをテストする必要があります。したがって、すべての列が問合せから戻され、外部キー制約をテストし、テストIDが期待通りに生成されるようにします。 – Jonathan

関連する問題