Я только начал изучать BDD для моего текущего проекта. Я использую moq с mspec, чтобы получить хорошие результаты теста.
Однако я не могу найти достаточно примеров того, что я пытаюсь сделать, возможно, я использую неправильный подход или просто недостаточно понимаю синтаксис, пожалуйста, сообщите.
Проблема в том, что я пытаюсь проверить, установлено ли свойство в классе. Это свойство представляет собой список объектов, и я хочу убедиться, что каждый объект имеет те же значения, что и ожидаемый объект.
Итак, с учетом начальных предпосылок
public class Data
{
int a;
}
public class DataViewer : IDataViewer
{
public List<Data> dataList {get;set;}
}
public interface IDataViewer
{
public List<Data> dataList {get;set;}
}
Я использую mspec и moq для выполнения следующих действий
class when_refreshing_data_list : Context
{
Because .... = () =>
{
.... // process the datalist
}
ThenIt should_set_the_data_list = () =>
{
List<DataList> expectedDataList = new List<DataList>();
expectedDataList.add() // add some expected values to the datalist
...
// problem is here in comparing two List<DataList>
_mockDataViewer.VerifySet(f => f.dataList = expectedDataList)
}
}
public abstract class Context
{
Establish context = () =>
{
_mockDataViewer = new Mock<IDataViewer>();
}
}
Как бы я провел это сравнение?
Могу ли я использовать переопределение оператора? Если да, то как?
Я попытался поместить тело выражения с правой стороны лямбды, но мне сказали, что «лямбда-выражение с телом оператора нельзя преобразовать в дерево выражений».
Любая помощь приветствуется:)