Итак, хотя начальные значения были разными, тестовый код и ожидаемое значение были точно такими же. Однако мои тесты оказались тремя функциями с одним и тем же кодом, что беспокоило SonarCloud.
Пример:
Код: Выделить всё
@Sql(scripts = {"classpath:data/db/condition_negative.sql"})
@Test
void testConditionNegative() {
[some code to get the actual value]
Assertions.assertEquals(actual, 0);
}
@Sql(scripts = {"classpath:data/db/condition_null.sql"})
@Test
void testConditionNull() {
[some code to get the actual value]
Assertions.assertEquals(actual, 0);
}
@Test
void testConditionNoRecords() {
[some code to get the actual value]
Assertions.assertEquals(actual, 0);
}
Пример вышесказанного:
Код: Выделить всё
private void sharedTestFunction() {
[some code to get the actual value]
Assertions.assertEquals(actual, 0);
}
@Sql(scripts = {"classpath:data/db/condition_negative.sql"})
@Test
void testConditionNegative() {
sharedTestFunction();
}
@Sql(scripts = {"classpath:data/db/condition_null.sql"})
@Test
void testConditionNull() {
sharedTestFunction();
}
@Test
void testConditionNoRecords() {
sharedTestFunction();
}
Или использовать один и тот же код в разных тесты — лучший способ сделать это, и мне следует просто игнорировать SonarCloud?
Или мой способ создания отдельной функции и других тестов, вызывающих ее, был лучшим вариантом, и я должен сказать своей команде, чтобы она просто привыкла к этому?
Подробнее здесь: https://stackoverflow.com/questions/786 ... rent-sql-e