Комментарии 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 - это, несомненно, золотая жила.
Руководство по Java 8 Optional