Идея статьи возникла после нескольких лекций о том, как писать тесты и как испольщовать xUnit. Обо всём можно по отдельности почитать подробно. Здесь же я собрал общую информацию о том, как удачно на практике всё это применяется и сопроводил ссылками, для дальнейшего ознакомления.
Соглашения в коде
Распространённая практика помещать все тестовые проекты в отдельный фолдер. Это относится и к структуре фолдеров на диске и к фолдерам в солюшене. Практика распространена именно благодаря удобству. Так же, имя проекта и пространство имен полностью повторяют тестируемый модуль с добавлением в конце слова Tests (обычно через точку). Для простоты поиска тестов все тесты, относящиеся к некоторому классу помещаются в его класс с тестами. Т.о. получается пара из оргигинального класса и класса с тестами. Разделение между юнит, интеграционными, нагрузочными происходит либо по категорям, либо по логике основной системы. Это значит, что если интеграционные тест нельзя отнести к одному классу (обычно, это так), то они выносятся в отдельную сборку, посвященную тестируемому функционалу. Или, например, нагрузочные тесты могут тестировать работу некоторого метода одного класса. В этом случае тест размещается в парном классе. Структура самих тестовлюбого типа соответствует стилю AAA. Систематизируем вышесказанное:
- Расположение проекта: в фодре Tests
- Имя тестового проекта: [ProjectName].Tests
- Пространство имен: [Namespace].Tests
- Имя класса с тестами: [Class]Tests
- Пара 1-1 изи тестируемого класса и класса с тестами
- Наименование юнит-тестов: BDD (read more)
- Стиль тестов: AAA (Arrange-Act-Assert)
ссылка на оригинал статьи https://geektimes.ru/post/272994/
Добавить комментарий