現在、UnityとMOQを使用して、WCFの単体テストを行っています。アプリケーションのコードには、次のものがあります。
private void MyMethod()
{
.....
.....
_proxy = new UnityContainer().LoadConfiguration().Resolve<IMyInterface>();
.....
}
アプリケーションのapp.configには、次のものがあります。
<container>
<register type="IMyInterface" mapTo="MyActualObject" />
</container>
単体テストのapp.configで、これをプロキシのモックオブジェクト実装に置き換えます。
<container>
<register type="IMyInterface" mapTo="MyMockObject" />
</container>
それはすべて正常に機能しています。しかし、私がさらにやりたいのは、特定のテストについてです。MyMockObjectを別のモックオブジェクト実装に置き換えたいと思います。
実行時に登録されたタイプを変更することは可能ですか?実行時にアプリケーション構成を変更しようとしましたが、変更を検出できません。
Configuration appConfig = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
var section = (UnityConfigurationSection)appConfig.GetSection("unity");
section.Containers[0].Registrations[0].MapToName = "AnotherMockObject";
appConfig.Save();
ありがとう!!