Autofac を使用してカスタム ビュー モデル ロケーターを作成し、それらのほとんどが通常使用されるように、App.xaml を介して通常どおりに設定しました。私の問題は、今ユニットをテストするにはどうすればよいですか? ビューを初期化するメソッドをテストしようとするたびにエラーが発生します
私のapp.xamlでは:
<desktop:ViewModelLocator xmlns:local="clr-namespace:MyProject.Desktop" x:Key="ViewModelLocator" />
各ビューで:
DataContext="{Binding MyFirstViewModel, Source={StaticResource ViewModelLocator}}"
単体テスト エラー:
{"Cannot find resource named 'ViewModelLocator'. Resource names are case sensitive."}
単体テストを実行すると、実際のアプリのインスタンスが実際に存在しない理由がわかりました。この問題を回避する良い方法は何ですか?
ViewModelLocator コード:
/// <summary>
/// Autofac object container
/// </summary>
private readonly IContainer objectContainer;
#region Constructor
/// <summary>
/// Constructor for view model locator
/// </summary>
public ViewModelLocator()
{
objectContainer = App.ObjectContainer;
//objectContainer.BeginLifetimeScope();
}
#endregion
#region Properties
/// <summary>
/// Gets the resolved instance of a main window view model
/// </summary>
public MainWindowViewModel MainWindowViewModel
{
get
{
return objectContainer.Resolve<MainWindowViewModel>();
}
}
public FirstViewModel MyFirstViewModel
{
get
{
return objectContainer.Resolve<FirstViewModel>();
}
}
public SecondViewModel MySecondViewModel
{
get
{
return objectContainer.Resolve<SecondViewModel>();
}
}