Как запустить один и тот же тест несколько раз с разными SQL каждый раз?JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как запустить один и тот же тест несколько раз с разными SQL каждый раз?

Сообщение Anonymous »

Мне поставили задачу создать и протестировать метод, который, по сути, должен был возвращать ноль в случае, если поле отрицательное, нулевое или если в таблице нет записей.
Итак, хотя начальные значения были разными, тестовый код и ожидаемое значение были точно такими же. Однако мои тесты оказались тремя функциями с одним и тем же кодом, что беспокоило 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);
}
Я пытался создать отдельную функцию и заставить ее вызывать другие (и посредством тестирования пытался вызвать сбой одной из них, изменяя ее SQL, а другие нет, и запуская все тесты одновременно, казалось, что это действительно работает), но моя команда жаловалась, что из-за этого было трудно понять, что делает каждый тест, и они не были уверены, что разные тесты, вызывающие один и тот же код утверждения, действительно проверяют разные значения.
Пример вышесказанного:

Код: Выделить всё

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();
}
Итак, есть ли способ запустить один и тот же тест несколько раз и каждый раз с другим SQL (или даже без SQL)? Или лучше всего использовать один и тот же код в разных тестах, и мне следует просто игнорировать SonarCloud? Или мой способ создания отдельной функции и других тестов, вызывающих ее, был лучшим вариантом, и я должен сказать своей команде, чтобы она просто привыкла к этому?

Подробнее здесь: https://stackoverflow.com/questions/786 ... -each-time
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»