Модульное тестирование с полным набором данных - PullRequest
2 голосов
/ 09 августа 2011

У меня есть метод, который вычисляет внутриклассовую корреляцию на основе значений.Я хотел написать модульный тест для этого метода, который бы считывал результаты из файла CSV и передавал данные в метод, который я написал.Я думал, что мог бы использовать DataSourceAttribute для метода, чтобы передать весь набор данных, но я предполагаю, что использование этого метода только передает одну строку за раз.во всем наборе данных вместо строки за строкой к тестовому методу, или я застрял при написании кода для чтения каждой строки и построения таблицы данных самостоятельно?

1 Ответ

0 голосов
/ 09 августа 2011

Обратите внимание, что атрибуты DataSource и DeploymentItem для TestMethod предоставляются для запуска нескольких тестов в рамках одного метода тестирования. Это можно сравнить с тестами на основе данных или параметризованными тестами. Идея состоит в том, чтобы позволить вам указать несколько наборов параметров, каждый из которых предназначен для одного теста. По этой причине ваш тест читает по одной строке за раз, так как он предназначен для запуска одного теста на строку.

Если вместо «каждого запуска теста» вводится таблица или строки, а не только одна строка, я вижу, что вы можете выровнять таблицу до одной строки, а затем снова развернуть ее в тесте (это просто опция, позволяющая разработать собственный код сглаживания / расширения). Я могу придумать другие варианты, но я полагаю, это зависит от ваших целей. Если вам нужно легко изменить входные данные теста, не перестраивая тесты, то эта модель, основанная на данных, является лучшей. Если вы просто хотите провести тест с таблицей данных (которая не изменится в будущих прогонах теста), рассмотрите что-то более статичное, жестко запрограммированное в тесте. Кроме того, это может сделать тест более читабельным. Вы всегда можете написать код для подделки исходного кода позже.

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