Я новичок в издевательствах над носорогом и юнит-тестировании в целом.Я начинаю писать некоторые тесты для моего приложения wpf mvvm.Вот пример сценария, который я пытаюсь проверить:
Модель представления:
List<DataItems> _theData = new List<DataItems>();
public MyViewModel(IServer server)
{
_server = server;
InitializeData();
}
private void InitializeData()
{
_server.GetData(MyCallback);
}
private void MyCallback()
{
_theData = _server.TheData;
}
public List<DataItems> VMData
{
get
{
return _theData;
}
}
Сервер:
public List<DataItems> TheData
{
get
{
return _cachedData;
}
}
public void GetData(Action callBack)
{
//Populate cached data
...
if(callBack != null)
{
callBack();
}
}
В моем тесте я хочу убедиться, чтоviewModel.VMData.Count == server.TheData.Count.Я попытался использовать насмешки на носорогов, чтобы заглушить сервер, предварительно добавив в TheData некоторые значения.Я вызвал конструктор модели представления, а затем попытался сравнить счетчики.
Моя проблема в том, что я не знаю, как заставить мой сервер действительно перезвонить в мою модель представления.После вызова конструктора vm метод InitializeData () вызывается, как и ожидалось, но вызов GetData сервера-заглушки не выполняется.
Как заставить этот простой тест работать?