3

私は自分のプロジェクトでいくつかの単体テストを書いていますが、テストしたいメソッドを含むコントローラーにデータコンテキストの依存関係があります。

Ninjectを使用して依存関係を注入し、Moqを使用してモックデータコンテキストを作成しています。私のDIは、IDataContext私のdbmlが意味するインターフェースを利用し、インジェクションプロセス全体で使用されます。

私の単体テストでは、次のようにモックデータコンテキストを作成しています。

var mock = new Mock<IDataContext>();
var myController = new MyController(mock.Object);

これによりObject reference not set to an instance of an object.、datacontextsコンストラクターの実行中に2行目に例外がスローされます。

これを設定する際の基本的な部分が明らかに欠けていますが、私が見たMoqの例のほとんどは、を使用したモックオブジェクトに対するある種のテストを含んでいますSetup()

私はこれを正しい方法で行っていますか?インターフェイスのモックなどを作成する必要がありIDataContextますか?

4

1 に答える 1

2

ははは、ASP.NetMVCでのユニットテストに関するemadのブログを読んでいるときに答えが返ってきました。

テストプロジェクトのapp.configに接続文字列を追加しなかったと思いますか?:)

そして、それはデータベースの依存関係の方法です。なぜなら、あなたはまだデータベースの終わりをあざけるわけではないからです。したがって、それを実行したい場合は、いくつかのコードをグーグルで検索する必要があります。これを行うにはいくつかの方法があります。

以下のいくつかの参照は非常に便利ですが、データベースの終わりをモックする必要がないため、今はテストDBサーバーを使用しています。

リンク

于 2010-06-04T03:41:59.990 に答える