Модульное тестирование в Visual Studio: что реализовать в моем классе, чтобы иметь возможность использовать Assert.AreEqual?

Я добавляю модульное тестирование в свой проект (Visual Basic). Я использую инструменты тестирования в Visual Studio (2010 Premium). В паре тестов я хотел бы убедиться, что мой класс равен ожидаемому значению класса с Assert.AreEqual. Но это не работает из коробки.

Что лучше всего сделать, переопределить Equals Method реализовать интерфейс IEqualityComparer, или ...?


person user5158192    schedule 17.02.2011    source источник
comment
Это как раз одна из причин, по которой вам следует избегать использования MSTest. Взгляните на реальную среду тестирования, такую ​​как NUnit, Gallio/MbUnit или xUnit.Net.   -  person Yann Trevin    schedule 17.02.2011


Ответы (1)


Assert — это статический класс, вы не сможете расширить объект или добавить расширение.

У вас есть 3 варианта

  1. Добавьте в свой проект еще один статический эквивалентный класс Assert и реализуйте AreEqual, используя IEqualityComparer,

  2. Переопределить метод Equals (также операторы GetHashCode, == и !=)

  3. Используйте Assert.IsTrue и оцените с помощью реализации IEqualityComparer.

Ваше здоровье...

person Robert Slaney    schedule 17.02.2011
comment
Спасибо! Второй вариант мне совершенно ясен. С третьим вы имеете в виду, что реализация IEqualityComparer не подходит для использования Assert.AreEqual, не так ли? У вас случайно нет ссылки на еще какое-то объяснение по первому варианту? - person user5158192; 21.02.2011