SQL Developerは、DMLのユニットテストをサポートしていますが、私はDDLのためのユニットテストを作成する方法を発見していませんでした。この問題に対する良いアプローチは何でしょうか?私が始めているスキーマは小さく、水平線上の大規模なプロジェクトを含む数十ものテーブルより少ない。 Googleは単体テストのDDLへの適用にあまり戻っていません。ユニットテストDDLのために存在するDDLやその他のツールをテストするアプローチに関するアイデア?ユニットテストDDL SQL Developerを使用した3.1
答えて
あなたはDDLについてテストするために何をしたいですか?テーブルが定義どおりに作成されるか、作成されません。
あなたができることは、データディクショナリを照会してテーブルが存在しているかどうかを確認する一連のテストを作成し、必要なサイズとデータ型を持つカラムを持つことです。これは単体テストしかし、私はそれがどれほど価値があるかは分かりません。
スキーマのビルドスクリプト(またはスキーマにオブジェクトを追加するための新しいオブジェクトを追加するには、移行のシリーズ)を維持した場合、それはあなたがそれが定義されたようにスキーマが作成されている知っているエラーなしで適用された場合。
ストアドプロシージャがある場合、スキーマが100%正しくない場合、プロシージャの一部がコンパイルに失敗します。プロシージャをきれいに取得することは、スキーマのもう1つの検証ステップです。
最後に、あなたがDMLとストアドプロシージャをテストするために書くのユニットテストは、正しいデータが正しいテーブルに入っていることを確認します。
あなたはいくつかのテストは、表が特定の値のみを受け入れることができますまたは列がなどユニークであることを保証したい場合があります(つまり、制約が正しいテスト)が、それはあまりにもダウン標準ユニット・テストになります。
私は、DBのコードの書き込みユニットテストで大きな信者だが、私はそれを行うためのSQL開発者GUIのアプローチを好きではありません。今はアプリケーションのテストを書いていますが、Rubyでテストをコーディングしていますが、うまくいくようです。ビルドと自動化されたテストプロセスにも簡単に組み込むことができます。
もう1つの選択肢は、これまで私が使用していたUT_PLSQLですが、単純にPLSQLの性質によってテストが非常に冗長になるため、私は現在のプロジェクトでRubyを使用することにしました。
これは古い質問ですが、私は最近、同じ問題を解決するために取り組んでいます。私は、オブジェクトを作成する前にDDLのテストを定義し、それらのテストに合格するオブジェクトを作成すると便利だと思います。
私は、表が存在しない場合には例外を発生させ、そうでない場合には自動的に実行されるアサートの「パターン」 - つまりtdd.ddlunit.assert_tableexists(p_schema_name、p_table_name)を使用しています。
私が作成した他のアサーションは、すべてのvarchar2カラムがバイト長のセマンティクスではなく文字セマンティクスを使用し、すべてのテーブルとカラムにコメントが付いていることを確認するなどのためのものです。
これらはコードリポジトリにチェックインされ、継続的な統合フレームワークによって実行され、期待どおりの有効なデータベースがあることを確認できます。
- 1. Oracle SQL Developerの式を使用した複数列のエイリアシング
- 2. PL/SQL Developer 7.0.2を使用したOracleトリガーのデバッグ?
- 3. DDL文を使用したPostgres関数
- 4. Iphoneユニットテスト:SQLを使用
- 5. ユニットテストEJB 3.1
- 6. MySQLとSQL Serverのクエリを使用してテーブルDDLを生成
- 7. コントローラパラメータを使用したユニットテスト
- 8. Xcode 3.1でのユニットテスト
- 9. Pythonでcx_Oracleを使用してPL/SQLとDML/DDLを使用してSQLファイルを解析します
- 10. SQL Developerを使用して直接クエリをCSVにエクスポートする
- 11. Rails 3.1とアセットパイプライン用のJavascriptユニットテスト
- 12. エラーはSQL Developerを使用して、Oracleでストアドプロシージャ
- 13. ユニットテストEJB 3.1 - なぜモックコンテナサービス
- 14. Rails 3.1を使用したclient_side_validationsのデバッグ
- 15. .NET 2.0コード - MoQを使用したユニットテスト
- 16. スクリプト言語を使用したC++ユニットテスト
- 17. ContentProvidersを使用したAndroidユニットテスト
- 18. Visual Studio Expressを使用したSilverlightユニットテスト
- 19. ユニットテスト、LINQを使用したデータベースカウント
- 20. MVCのMockを使用したユニットテスト
- 21. Microsoft MFCを使用したC++ユニットテスト
- 22. Zend Frameworkを使用したファイルアップロードとユニットテスト
- 23. Bookshelf.jsとknex.jsを使用したユニットテスト
- 24. ユニットテストJavaを使用したC++コード
- 25. GTestを使用したコールバックのユニットテスト
- 26. Request.CreateResponseを使用したASP.NET WebApiユニットテスト
- 27. PL/SQL DDL即時実行
- 28. SybaseクエリをOracle Sqlへ移行する:oracle sql Developer
- 29. SQL DDL番号の範囲
- 30. Oracle SQL Developerのリストから未使用の値を戻す
例えば、外部キーと制約は、おそらくユニットテストを受けるべきであるたくさんのロジックを含んでいます。 –