генерировать случайные значения для модульного тестирования типа данных таблицы Hast - PullRequest
2 голосов
/ 24 марта 2009

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

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

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

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

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

Ответы [ 2 ]

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

Во-первых, я всегда заполняю свои случайные значения для модульных тестов, чтобы их можно было повторить - однако, что-то вроде (используя Dictionary<,> вместо HashTable, но эквивалентно):

        Random rand = new Random(123456); // note seed
        Dictionary<int, double> lookup = new Dictionary<int, double>();
        for (int i = 0; i < 5000; i++)
        {
            lookup[rand.Next(100000)] = rand.NextDouble();
        }
0 голосов
/ 24 марта 2009

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

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