5

Ninject には、unity の registerinstance と同等のメソッドがありますか。

モックオブジェクトを作成して登録したい。

ありがとう

4

2 に答える 2

13

これが簡単な答えです

Bind<IMyType>().ToConstant<MyType>(new MyType());

したがって、Moqを使用した例を次に示します。

var mock = new Mock<IMyType>();
//Setup your mock expectations / etc here.
//...
Bind<IMyType>().ToConstant(mock.Object);

ボーナス回答:

一部の人々は、実際に特定のクラスのシングルトンインスタンスを作成するのではなく、実際に作成しようとしていることがわかりました(これにより、コンテナを構築するときではなく、何かが要求したときにオブジェクトを作成できます)。これは次のように行われます。

Bind<IMyType>.To<MyType>().Using<SingletonBehavior>();

あなたの場合、「モック」という言葉を言ったので、2番目の答えではなく最初の答えが欲しいと思いますが、知っておくのは良いことです。

于 2009-08-11T05:31:04.477 に答える
2

使用しているモック ツールの種類、または使用している Ninject のバージョンが不明です。ただし、Ninject 2 には、Moq との統合を提供する拡張機能 ( http://github.com/enkari/ninject.moq ) があることに注意してください。

これはあなたの質問に直接答えないことを理解しています.Anderson'sはそれをうまくやっていますが、とにかく関連があるかもしれないと思いました.

于 2009-08-11T11:53:07.273 に答える