Стандарты кодирования модульных тестов

Стандарты кодирования модульных тестов
Стандарты кодирования модульных тестов - nci @ Unsplash

Обычно, говоря о стандартах кодирования, мы имеем в виду код самой программы, но как насчет модульных тестов? Существуют ли определенные рекомендации по стандартам кодирования, характерные только для модульных тестов? Каковы они?

Навскидку я могу назвать три различия в стиле кодирования тестового кода.

При именовании тестовых методов я следую шаблону shouldDoSomethingWhenSomeConditionHolds.

Внутри теста принято следовать следующему шаблону интервалов:

@Test
shouldReturnAccountBalenceWhenGetBalenceIsCalled() {
    // Some lines 
    // of setup code
    // go here.

    // The action being tested happens after a blank line.

    // An assertion follows another blank line.
}

Некоторые настаивают только на одном утверждении на тест, но это далеко не универсально.

DRY (Don't Repeat Yourself) в меньшей степени учитывается в тестовом коде, чем в производственном. Хотя некоторые повторяющиеся коды следует поместить в метод setUp или класс testUtils, стремление к нулевому повторению в тестовом коде приведет к жестко связанным и негибким тестам, что препятствует рефакторингу.


LetsCodeIt, 24 мая 2023 г., 05:41