Как выполнить модульное тестирование нескольких экземпляров класса в xUnit - PullRequest
0 голосов
/ 23 мая 2018

Я довольно новичок в модульном тестировании.Я понимаю концепцию, но я продолжаю натыкаться на стены при казни.Как в xUnit проверить несколько экземпляров класса?Например, скажем, у меня есть конструктор с подписью:

public FileWatcher(string path = "", bool startWatching = true)

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

1 Ответ

0 голосов
/ 24 мая 2018

Полагаю, вы должны подумать о своем подходе.Исходя из подписи, я думаю, что ваш FileWatcher должен / будет / действительно ведет себя иначе, когда path равен нулю, когда файл существует, когда файл не существует.

Нет особого смысла в тестировании того же самогосценарий снова и снова, потому что вы в основном запускаете один и тот же тест.

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

ЭтоМожно сказать, что в xUnit можно создавать теории, это тесты с параметрами.Я бы предложил xUnit Theory: Работа с InlineData, MemberData, ClassData , это помогло мне.

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