Какие типы объектов лучше всего подходят для написания модульных тестов для общих коллекций? Очевидно, что если я использую их определенным образом в своем приложении, лучше протестировать их с этими типами. Но если я нет, и просто создаю библиотеку утилиты, какие типы я должен использовать?Какие типы объектов следует использовать для тестирования общих коллекций?
Я пытаюсь избежать любых ошибок с конкретными типами объектов. Например, при тестировании общей структуры словаря я знаю, что методы GetHashCode
и Equals
очень важны для обеспечения действительного теста. Я волнуюсь, что если я просто использую манекен object
экземпляров (var a = new object();
), то у меня возникают проблемы с этими методами, которые не являются достаточно прочными.
Я рассматриваю возможность использования GUID
экземпляров для всех моих модульных испытаний из-за их обязательно уникальных ограничений. Однако, будучи структурами, я не могу проверить эквивалентные ссылки, если это необходимо.
Наконец, есть ли какие-либо другие проблемы, требующие внимания при использовании конкретной реализации объекта (например, object
или GUID
) вместо общих типов для целей единичного тестирования?
Очень странный вопрос. Проверьте, каким образом? Модульный тест? Это зависит от того, что именно вы тестируете, не так ли? Если вам нужно что-то, что реализует GetHashCode и Equals, то убедитесь, что вы используете что-то, что делает это. Вы просто ищете список типов, которые делают? –
@ KierenJohnstone-I отредактировал мой вопрос, чтобы указать модульное тестирование и, надеюсь, уточнить мои намерения. – dlras2