Member 11239384 Ответов: 2

Как я могу кодировать модульное тестирование в csharp


Я изучаю модульное тестирование и запрашиваю образец кода c# для проекта https://github.com/alialavia/MSINet и это подскажет мне, что делать.

Что я уже пробовал:

до сих пор не могу определить, какие методы включить в тест, а какие оставить.

F-ES Sitecore

Этот код не может быть модульно протестирован, это в основном статические методы и никакая абстракция, чтобы отделить код\логику от внешних зависимостей, таких как msi.dll.

Member 11239384

я имел в виду проект, а не приведенный пример кода.

F-ES Sitecore

Я говорил о проекте (тот, что в github)

Member 11239384

вы открылись в visual studio?а как насчет enumerate() в классе installproprty?

F-ES Sitecore

Вы не можете проверить его, потому что он вызывает MSI.EnumerateGUIDs, который полагается на msi.dll и перечисляет установленные продукты на любом ПК, на котором он находится. Модульные тесты тестируют логику и должны быть автономными. Единственная логика в этом коде - это функция EnumerateGUIDs, которую вряд ли стоит тестировать. Также невозможно узнать, что сделал этот метод, потому что вы не можете внедрить свои собственные services \ data в класс, поскольку он не был написан таким образом, чтобы его поддерживать. Вы не можете проверить результаты, каков результат? Результат будет разным на каждой машине, на которой он запущен. Наконец, для любой среды, в которой вы запускаете эти тесты, потребуется установленный msi.dll, который будет работать с учетом учетной записи пользователя, запускающей тесты.

Member 11239384

любой метод там, который может быть tested.in какая-то часть проекта?

2 Ответов

Рейтинг:
9

Dave Kreskowiak

В этом проекте нет ни одного метода, который можно было бы проверить на практике. Весь проект нужно будет переписать, чтобы приспособить его к тестированию.


Рейтинг:
18

phil.o

Вы уже смотрели учебники по основным фреймворкам модульного тестирования?
Например
MSDN: Пошаговое Руководство: создание и запуск модульных тестов для управляемого кода[^]
MSDN: основы модульного тестирования[^]
CodeProject: создание модульных тестов для вашего кода c# [^]
Нанит - Краткое Руководство[^]

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