Как стать автором
Обновить

Комментарии 5

В чем смысл почти каждый тест именовать_thenCorrect()?

Почему не написать нормально ожидаемый результат?

И вот это givenAnEmptyOptional_thenIsEmptyBehavesAsExpected

BehavesAsExpected - универсальное вообще, любой тест можно так назвать

А если это можно писать везде, то можно везде и опустить, это ведь подразумевается в таком случае, нам зачем лишняя писанина?

Test_something_ok или даже просто test_something - вполне нормальная история

Не уловил, то ли согласны со мной, то ли нет

Test_something_ok или даже просто test_something - вполне нормальная история

Не, не нормальная. Название теста должно отображать, что он тестирует. Если говорить предметно, то whenCreatesEmptyOptional_thenCorrect ни говорит мне ни о чём.

Давайте с примерами, test_something - это абстрактный пример) тем более в статье given-when-then используется, но then просто натягивается, потому что нужно

Поддержу вас, есть неплохие примеры Naming Standards for Unit Tests or Unit Test Naming Conventions у Роя Ошероув, автора книги "Искусство автономного тестирования с примерами на C# ".
Поясню для читателей в качестве дополнительной информации.
Допустим, есть некоторый метод Public int Sum(params int[] values), возвращающий сумму массива значений, длина которого может находиться в промежутке [0; 1000]. Пройдёмся по нескольким возможным вариантам именования тестового метода:
Sum_NumberBiggerThan1000 - непонятно, что именно ожидаем получить
Sum_NumberIsIgnored - ожидаемый результат ясен, но непонятны условия его достижения
Sum_NumberIgnoredIfBiggerThan1000 - ясен и ожидаемый результат и условие - предпочтительный вариант именования.
То есть, общий паттерн примерно такой: имя тестируемого метода + результат + условие.

Переводить baeldung - это, несомненно, золотая жила.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий