Обычно, говоря о стандартах кодирования, мы имеем в виду код самой программы, но как насчет модульных тестов? Существуют ли определенные рекомендации по стандартам кодирования, характерные только для модульных тестов? Каковы они?
При именовании тестовых методов я следую шаблону 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, стремление к нулевому повторению в тестовом коде приведет к жестко связанным и негибким тестам, что препятствует рефакторингу.