人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

.NETでのDBアクセス層のテスト駆動開発

ASP.NET 2.0を使って、テスト駆動開発を行いたいと考えています。
データベースの検索や更新を行うモジュールをどうやってテストするか悩んでいます。

必要なデータをあらかじめテキストファイルで作成しておき、テストの実行前に自動的にテーブルにロードされるようにしたいのですが、良い方法は無いでしょうか?
RubyOnRailsのFixtureみたいな事が出来れば嬉しいです。
理想的には、
・データ作成が簡単
・データをソースと一緒にソース管理ツールで管理できる
・DBMSになるべく依存しない
ような方法を探しています。

●質問者: zorio
●カテゴリ:コンピュータ
✍キーワード:.NET 2.0 ASP.NET dB DBMS
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● robbie21
●60ポイント

テストコードの例

  //テスト用DBの作成
 MockDb mockDb = new MockDb();
  //テスト用データ(tanaka)をMockDbに追加しておく、
 //MockDbは単純に追加しておいたデータをそのまま返すクラス。
 Person tanaka= new Person("tanaka",28);
 MockRecord record = new MockRecord();
 record.AddField("Name",tanaka.Name);
 record.AddField("Age",tanaka.Age);
 mockDb.AddRecord(record);
 
  //DbReaderがここでテストしたいDb検索用のクラス
 DbReader personReader = new DbReader(mockDb);
  //正しく値が取り出せているか検証 
 Person person = personReader.getPerson("tanaka");
 AssertEquals(tanaka.Age,person.Age);

といった感じでどうでしょうか。

http://www.atmarkit.co.jp/fdotnet/tools/nunit22_02/nunit22_02_02...

http://patterns-wg.fuka.info.waseda.ac.jp/study/7th-oota.pdf

◎質問者からの返答

ご回答ありがとうございます。

ちょっと私の要望とは違います。

まさにテストをしたい部分が、Mockと置き換わっています。

ちなみに、1テーブルからレコード全体を1件?数件取るような単純なケースもありますが、5?10個のテーブルをJOINしたり、あるテーブルの内容に従って動的にクエリを作成したりすることもあります。

どっちかと言うと、そういうクエリが複雑な場合のテストが自動化できる事が重要です。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ