LINUX.ORG.RU

Unit Tests naming convention

 ,


0

2

Какие конвенции именования методов юнит тестов используются в ваших компаниях и какие конвенции вы считаете наиболее правильными? Например, как вы относитесь к использованию символов подчёркивания в имени методов? Это нарушает общую конвенции именования методов в Java, но находятся такие, кто осознанно нарушают её в юнит тестах.

★★★★★

Я за snake_case, т.к. theLongMethodNamesAreHardToReadInCamelCase.

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

cocucka ★★★★☆
()
Последнее исправление: cocucka (всего исправлений: 1)
public void givenAbcAndCde_whenDoThisActionA_thenExpectAbcEqualsCde() {
   // given

   // when

   // then
}
bvn13 ★★★★★
()

с какой целью интересуешься, пээмка наругал, что вместо корпоративного стандарта жавовским пользуешься? всё правильно сделал, в xUnit своя атмосфера, там название метода должно нести побольше информации, чем SuperGreatCommonGeneralWrapper

hebiro8709
()

testSimple(), testThrowsIAE1, testReturnsFalseOnTimeout

какие конвенции вы считаете наиболее правильными

Убрать test, разделять слова пробелами (можно в Kotlin).

как вы относитесь к использованию символов подчёркивания в имени методов? Это нарушает общую конвенции именования методов в Java, но находятся такие, кто осознанно нарушают её в юнит тестах.

Плохого не вижу, но и смысла тоже. Камел кейса должно хватить.

Legioner ★★★★★
()
Ответ на: комментарий от Legioner

Убрать test

Поддерживаю

Камел кейса должно хватить.

Да, с осмысленным названием, например:

@Test
@DisplayName("Test successful user creations")
void createUser() {
    // test code
}

@Test
@DisplayName("Test user creations with illegal arguments")
void tryCreateUserWithIllegalArguments() {
    // test code
}

@Test
@DisplayName("Test user creations when user already exists")
void tryCreateUserThatAlreadyExist() {
    // test code
}
В этом примере можно даже убрать «try». Оно здесь используется лишь как намёк на то, что мы проверяем негативное поведение.

Андерскоры нарушают общую конвенцию именования методов в Java.

bbk123 ★★★★★
() автор топика

Больше 10 лет использую префикс should_

Префикс test_ не нравится своей императивностью, не всегда можно адекватно описать главную мысль теста, а с should сразу понятно, что должен делать класс/модуль. Потом грепом можно получить, по сути, готовое ТЗ к интерфейсу.

E ★★★
()

Та ничего сложного же test1(), test2(), test3() и так далее. От длинных имен только голова болит.

ya-betmen ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.