2

単体テストに MSTest を使用するプロジェクトに取り組んでおり、データ ソースにかなり緊密に結合されたモデル クラスの単体テストを作成する必要があります。モデル クラスが依存しているデータベースのソース コードは、データベース プロジェクト (.dbproj) で管理されています。私が考えていたのは、データベース プロジェクトを使用してデータベースの SQL CE インスタンスをプログラムで構築する ClassInitialize メソッドをテスト クラスに記述することでした。これにより、モデル クラスを接続してそれに対してテストを実行できるデータを入力できます。既知のデータで。

誰かがそれらを持っているなら、私は他の提案を受け入れます。

方法を理解しようとしているのは、ClassInitialize メソッドのコード内からこのデータベース プロジェクトを実行することです。そのようなことを行う方法の良い例を見つけることができませんでした。これは可能ですか?もしそうなら、どのように?誰でもコードサンプルを持っていますか? ありがとう。

4

3 に答える 3

2

残念ながら、データ層の単体テストは非常に難しいことで知られています。私が提案できる最善の方法は、データ層用の汎用インターフェイスを構築し、ビジネス層の呼び出しをデータ層にモックすることです。

データ層を単体テストしようとすると、苦痛の世界に直面することになります。スキップして、統合テスト中にデータ層のバグを洗い流すことをお勧めします。

そうは言っても、LINQ to SQL を使用している場合は、先日、LINQ to SQL リポジトリをモックする方法を示すこの記事に出くわしました。機能させるには追加の作業が必要ですが、役に立つかもしれません。

于 2009-02-23T20:59:44.450 に答える
0

モックに関するコメントには同意しますが、自動化された統合テストを実行して、リポジトリ内のメソッドをクラスのように実行することもできます。

私が使用した手法(MSテスト付き)の非常に詳細な説明をここで行いました

于 2009-03-10T15:44:53.270 に答える
0

おそらく、モックを検討する必要があります- moqは、開始するのに適した場所です。基本的にモッキングとは、テストを支援するためにコード内の依存関係を偽装するフレームワークを持つことです。

于 2009-02-23T20:56:17.017 に答える