Ninject を使用した UnitTesting プロジェクトで Moq を使用する際に問題が発生しています。
私のソリューションについての最初の数行。いくつかのプロジェクト (BussinesLogic、DAL、インフラストラクチャなど) が含まれています。私の目標は、BussinessLogic プロジェクトで使用しているロジックを UnitTest することです。ソリューションは基本的に Windows サービス用ですが、スタンドアロンで実行できるようにロジックを入れました。Ninject を使用しており、ProductionModule または TestingModule を使用する天気を指定します (Windows サービスは ProductionModule を使用し、コンソール アプリは TestingModule を使用します)。
アプリケーション内で必要なときはいつでもninjectカーネルを取得するためにファクトリーパターンを使用しています。
私の TestingModule は NinjectModule から継承し、そこで Load() メソッドをオーバーライドしてバインディングを行います。例えば:
Bind<IStorageManager>().To<StubStorageManager>();
StubStorageManager がありますが、空です。これには、IStorageManager からのメソッドの宣言のみが含まれています。
私がやりたいことは (素人の言葉で): unitTest を作成し、TestingModule をパラメーターとして指定して新しいカーネルを作成します。次に、モック オブジェクト (IStorageManager のモックとしましょう) storageManagerMock を作成したいと思います。IStorageManager の一部のメソッドは messageObject を返すため、おそらくそれもモックする必要があります。ビジネス ロジックがその messageObject に基づいて何かを実行しているためです。したがって、何らかの方法でそのメッセージ オブジェクトにプロパティを設定し、それに対していくつかの businessLogic メソッドを呼び出して、ロジックが正しく機能するかどうかを確認したいと考えています。
あまり複雑にしていないことを願っています。
私はモッキングと依存性注入にまったく慣れていませんが、喜んで学びます。