2011-01-06 2 views
3

Java環境ではTDDにかなり慣れているので、SQLクエリを作成したり、ビューを作成したりするときにもTDDを使用するのかどうかは疑問に思っていました。SQL:SQLクエリ/ビュー/ etcを操作するときにTDDを行うことは可能ですか?

また、小さなデータベースをたくさん作成する必要があります(基本的に各ユニットテスト用に)。

私はまだ私の質問はあまり理にかなっているかどうかを知りませんが:TDDは間違いなく、彼らがソフトウェアを開発する方法を変更し、事が開発は、「SQL」で起こっているとしてかなり一部で考えられていますレベル。それでTDDとDB/SQLはどのように混ざり合っていますか?

答えて

2

Railsの世界では、テストスイートをmigrations、そしてfixturesで実行するたびにビルドする専用のテストデータベースがあり、テストを実行する前にデータベースを事前準備しています。

これは、データベースに対してTDDを完全に可能にします。

私は、TDDがデータベース開発者によって使用されていない主な理由は、何よりも文化的なものだと思います。

+0

これは、Visual Studioとデータベースプロジェクト(また、サードパーティのツールの数を知っている人)でも行うことができます。私はそれが「文化的」であることに同意する必要があります。さらに、データベーススキーマは間違っていることは決してありません;-) –

0

データベースの世界では一般的ではないと思います。

質問は「私はここで何をテストしていますか?

これは、トランザクションの開始、トランザクションの開始、保証された初期状態の保証、テスト中のコードの実行、およびロールバックによって実行できます。しかし最終的には、これらのテストはデータ中心であり、DBの変更に対して脆弱である傾向があります。スキーマの変更によって、多くのテストが中断され、多くの作業が作成される可能性があります。

関連する問題