2009-03-24 1 views
4

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

Изначально я создал их для основных типов данных, таких как INT, поплавок, двойной, строка и т.д.

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

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

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

ответ

2

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

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

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

Mocking: http://en.wikipedia.org/wiki/Mock_object

+0

есть ли инструмент с открытым кодом для создания заглушек – Arunachalam

+0

RhinoMocks является открытым исходным кодом – Grzenio

+0

любыми вы предложить некоторые примеры для приведенного выше ответа – Arunachalam

Смежные вопросы