単体テストのダル-ご批判
-
06-07-2019 - |
質問
私gottonに私の使った簡単なプロジェクトがブームとなったテレビアニメ単体テストまでのダル.
私は、基本的にクラスと呼ばれFooDataAccessくつかの非常に単純な機能を作っており、そのうち3のようになります:
int InsertFoo(string fooName)
void UpdateFoo(int fooID, string fooName)
void InsertFoosDepedency(int fooID, string someValue)
かったこと-け4つのSQLスクリプト内にユニット試験プロジェクトの最後の一つとしてam組み込みます。
1)の作成(単体テストデータベースのスクリプトで、2)の作成スクリプトオブジェ、3つの挿入にルックアップテーブル値の4つのすべて削除しますがルックアップテーブルの値
のアイデアは、誰でも最初のプロジェクトは手動で実行スクリプト1-3手として、時間設定。その実行スクリプト#4月開始の各ユニットテスト...(小さなアプリ、きもの全てについての試験レベル)
OK、これまでのところで良い---
私は私のユニットテストデータベースの設定は、空のスレート.試験の最初の機能InsertFoo()は非常に簡単です。私はこの機能だけを主張する(ExecuteSQL("select count(*)from foo")>1)の主張(ExecuteSQL("を選択しfooNameからt_foo")予想)があります。
がんの少しこだわったのは、ものを必要とする依存関係のように、3機能の私のやってます。
う意味で一時的に下落すべての外部キー制約対象になって聞いた。その他、単体テストまでのInsertFoosDepedency(int fooID,string someValue)機能があると思いる行の任意のsql(手動で挿入し、FOOテーブルを返しますFooID)...
または、はんだ後?
ゆるフィードバックがぞよろしくお願い申し上げます。
更新:作業の効SQLインラインの被扶養者.これやって見ているだけでコメント&critisismこの方法は単体テストダル.スです。
解決
この音とよく似た私の役割だと思います。いすべてのデータをデータベースの それぞれの試験開始 その構築だけでその試験が求められる試験設けます。そのために UpdateFoo
この
void update_existingKey_updatesValue() {
String expected = "jeff";
clearDatabase();
// Note I would use dbUnit.
executeSQL("insert into foo values (1, 'fred')");
DAL subject = new DAL(...);
subject.update(1, expected);
//Note I would use dbUnit.
String actual = executeSQL("select name from foo where id = 1");
assert(expected, actual);
}
Javaいというツールを使 dbUnit, お手法名前が示すようにC#のいい点まで dbUnit.Net しかし私は利用したことのないます。これもキレイ(IMOとにかく)の方法populatingのデータベースを検証するコンテンツのデータベースです。
他のヒント
い ない muck世のスキーマのためのテストを行っております。に失敗した場合ではコードを入れで失敗しただけで自分自身ゃいました。
使用できる 模擬物?
なければと思いまなければならないことで設定データベースプレreqsれます。
すことを検討してはどうかと思うごとに別々のクラスの試験用の設定以下のような基本的な決まり文句の方法をデータベースの条件をテストを実施していた。
まかないのではないかと思いスイートインストーラでは特定のセットアップ試験方法として始めたから新築した以下のような基本的な決まり文句を空DBのその後).