У меня есть следующий класс:испытания равенства двух объектов на тестировании
public class OrderRule {
public OrderDirection Direction { get; }
public String Property { get; }
}
Я создал тест блока, используя XUnit следующим образом:
public void TryParse_ParseAscendingOrderRule() {
OrderRule expect = new OrderRule("name", OrderDirection.Ascending);
OrderRule result = factory.GetOrderRule("type1");
Assert.Equal(result, expect);
}
Я знаю, что ожидать, и результат имеет одинаковое направление и Значения свойств, но я по-прежнему получаю False в своем тесте ... Я полагаю, это потому, что они не совпадают с экземпляром ...
Нужно ли мне действительно сравнить Direction and Property следующим образом?
Assert.True(result.Property == expect.Property && expect.Property == expect.Property);
Это может стать очень долго, когда объекты имеют много свойств ...
Или есть лучший способ сделать это?
В этом случае это должен быть класс ... –
Затем просто перезапишите «Равно» и выполните сравнение один раз - ваши тесты xUnit останутся чистыми. Также есть хороший пример для ссылки на ссылочной странице MSDN – DAXaholic