Я стараюсь научиться проверять свои проекты правильно и постоянно.К сожалению, есть несколько вещей, которые я не понимаю, так как есть много разных мнений по этой теме.Чего я не понимаю, так это как решить, какие классы «стоит» их тестировать.В качестве примера я взял пример класса соединения JDBC из oracle:
public Connection getConnection() throws SQLException {
Connection conn = null;
Properties connectionProps = new Properties();
connectionProps.put("user", this.userName);
connectionProps.put("password", this.password);
if (this.dbms.equals("mysql")) {
conn = DriverManager.getConnection(
"jdbc:" + this.dbms + "://" +
this.serverName +
":" + this.portNumber + "/",
connectionProps);
} else if (this.dbms.equals("derby")) {
conn = DriverManager.getConnection(
"jdbc:" + this.dbms + ":" +
this.dbName +
";create=true",
connectionProps);
}
System.out.println("Connected to database");
return conn;
}
Я знаю, что могу смоделировать объекты, чтобы иметь возможность смотреть на класс более изолированно.Полезно ли даже тестировать такой класс, или я могу извлечь выгоду из этого, чтобы посмотреть, можно ли теоретически установить соединение?
public class TestClass {
@Mock
private Connection conn;
@Mock
private Database database;
@BeforeEach
public void setUp() throws Exception {
assertNotNull(database);
when(database.getConnection()).thenReturn(conn);
}
}