У меня есть метод, который выполняет инструкцию SQL, используя Statement.execute (запрос). Как проверить эту пустую функцию, поскольку она ничего не возвращает? Я использую Mockito и @ Spy.
Прикрепил мой фрагмент кода для моего метода execute (), который принимает ArrayList запросов:
public void execute(Statement statement, ArrayList<String> queryList) throws SQLException {
SQLException sqlException = null;
// read script line by line
for (String line : queryList) {
try {
statement.execute(line);
} catch (SQLException e1) {
if (null == sqlException)
sqlException = e1;
else {``
sqlException.addSuppressed(e1);
}
}
}
if (null != sqlException)
throw sqlException;
}
Это мой тестовый класс, который мне нужно использовать для тестирования метода void execute () в моем основном классе. Я использую Mocking и doNothing (), но получаю ненужное исключение Stubbing.
@ExtendWith(MockitoExtension.class)
@RunWith(JUnitPlatform.class)
public class TestSQL {
@Spy
RunSQL runSQL=new RunSQL("dbConfig");
@Mock
BufferedReader br;
@Spy
ArrayList<String> queryList;
@Mock
Statement s;
@Mock
Connection c;
@Mock
RunSQL runsql;
@Test
public void testExecute() throws SQLException, IOException {
Mockito.when(br.readLine()).thenReturn("something");
runSQL.execute(s, queryList);
Mockito.doNothing().when(runsql).execute(s,queryList);
}
}