1
내 뷰 모델에 대한 단위 테스트를 작성하려고하는데 다음과 같은 문제가 발생합니다. 일부 문제는 서비스 로케이터를 잘못 사용하고있는 것일 수 있지만 여기에 설명되어 있습니다. 나는이보기 모델에 대한 단위 테스트를하고 싶습니다 여러 공용 속성과 공공 방법이 그래서 난 '... 있습니다MVVM에서 뷰 모델을 테스트하기 위해 서비스 로케이터를 설정하는 방법
public class TestViewModel : ViewModelBase
{
private RelayCommand ...;
private RelayCommand ...;
private ObservableCollection<Test> _list;
private IRepository<Test> _testRepository;
public TestViewModel()
{
//Get the repository
_tenderRepository = ServiceLocator.Current.GetInstance<IRepository<Test>>();
//do a get on the repository and load it onto a list
LoadTestData()
}
...
}
: 여기
는 (내 저장소를 등록 MVVM 빛 IOC 사용) 내 코드입니다 이 방법을 설정 M :[TestFixture]
public class VMTests
{
TestViewModel _vm;
[SetUp]
public void RunBeforeAllFixtures()
{
_vm = new TestViewModel();
}
[Test()]
public void PublicMethod()
{
...
}
}
내가 "ServiceLocationProvider가를 설정해야합니다"라고 말하는 시험 엔진에서 오류가납니다을 내가 테스트를 실행 시도 할 때. 즉, 테스트 프로젝트에서 VM 인스턴스를 선택하기 전에 테스트 프로젝트에서 mock (또는 테스트 공급자)을 등록해야합니다.