設定
- ソリューションはプリズムを使用します
- VBで書かれたモジュールプロジェクト
- C#で書かれたテストプロジェクト
私の単体テストでは、モジュールによって使用されるサービスをモックアップして合格しますが、モジュールが解決しようとすると、次の例外で失敗します
{"Resolution of the dependency failed, type = "UnderwritingWorkflow.Common.Services.IValidationService", name = "(none)".
Exception occurred while: while resolving.
Exception is: InvalidOperationException - The current type, UnderwritingWorkflow.Common.Services.IValidationService, is an interface and cannot be constructed. Are you missing a type mapping?
例外の時点で、コンテナは次のとおりでした。
UnderwritingWorkflow.Common.Services.IValidationService、(none)"}を解決しています
UnityContainerにオブジェクトを登録するためのコードは次のとおりです。
var validationService = new Mock<IValidationService>(MockBehavior.Strict);
validationService.Setup(x => x.Validate(Moq.It.IsAny<object>()))
.Returns(() => new ValidationResults());
Container.RegisterInstance(validationService.Object);
また、(コンストラクター内から)登録した直後にc#からIServiceValidationを解決しようとすると、機能するようです。
Container.Resolve<IValidationService>();
なぜこれが起こっているのか考えはありますか?
注:実行時にクラスを作成するMoqモックフレームワークを使用していますが、VBの制限で使用できないのではないかと思います。