Как вы будете тестировать функцию, содержащую тип данных хеш-таблицы? - PullRequest
4 голосов
/ 24 марта 2009

Мой проект генерирует несколько значений (одинаковый метод разделения) для каждого типа данных, получая минимальное и максимальное значения. Я генерирую эти значения для функционального тестирования, я фактически передаю эти значения партнеру nunit, max и min применимы к int, float, double и т. Д. Эти значения являются тестовыми данными.

Изначально я генерировал их для базовых типов данных, таких как int, float, double, string и т. Д.

Теперь мне нужно поддерживать такие типы данных, как DataSet, HashTable и другие коллекции.

public DataSet MySampleMethod(int param1, string param2, Hashtable ht)

Для тестирования этой функции я могу передать значения для int и string, но как мне передать тестовые данные для ht или как генерируются тестовые данные для хеш-таблицы?

1 Ответ

2 голосов
/ 24 марта 2009

Вам необходимо абстрагировать реализацию хеш-таблицы от кода, чтобы ее можно было смоделировать, внедрить или создать заглушку при модульном тестировании.

Просто создайте интерфейс с именем IHashTable, а затем создайте конкретную реализацию, реализовав интерфейс. Затем сделайте так, чтобы все ваши классы, которые используют хеш-таблицы, теперь использовали IHashTable. Затем добавьте параметр к своим конструкторам, который принимает IHashTable.

Затем, когда вы выполняете модульное тестирование, проходите макет или заглушку интерфейса IHashTable.

Насмешка: http://en.wikipedia.org/wiki/Mock_object

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...