Вы должны решить, что вы хотите проверить. Это вы описали, это тест интеграции. С помощью «реального» unitTest вы проверяете только свой метод, а не системный метод, а не базу данных.
Если вы хотите unitTest, у вас есть несколько вариантов. Например, вы работаете с интерфейсами и улавливаете свое утверждение до того, как оно поступит в базу данных.
Edit 1 - одна возможность реализации модульного тестирования с интерфейсами:
Вам нужен один интерфейс, который реализует метод они идут к серверной системе:
public interface IDatabase{
public returnValue insert(yourParam);
public int update(yourParam);
}
Затем реализовать метод с реальным функции в классе:
public class Database implements IDatabase {
@Override
public returnValue insert(yourParam) {
// do something
return null;
}
@Override
public int update(yourParam){
// do something
return 0;
}
}
Этот класс вы звоните в главном классе:
/**
* The real class to do what you want to do.
*/
public class RealClass {
private IDatabase dbInstance = null;
private IDatabase getDbInstance() {
if (dbInstance == null) {
dbInstance = new Database();
}
return dbInstance;
}
protected void setDbInstance(IDatabase dataBase) {
dbInstance = dataBase;
}
public static void main(String[] args) {
getDbInstance().insert(yourParam);
}
}
Для модульного тестирования вы реализуете интерфейс снова:
public class UnitTest implements IDatabase {
@Override
public returnValue insert(yourParam) {
// Here can you test your statement and manipulate the return value
return null;
}
@Override
public int update(yourParam){
if (yourParam.containsValue(value1)) {
assertEquals("yourStatement", yourParam);
return 1;
}else if (yourParam.containsValue(value2)) {
assertEquals("yourStatement2", yourParam);
return 5;
}else{
assertTrue(false,"unknown Statement")
}
}
@Test
public void yourTest(){
RealClass.setDbInstance(this);
//Test something
}
}
Это отнимает много времени для реализации, но с этим, вы независимы от серверной системы, и вы можете вызвать UnitTest каждый раз, без базы данных.
Добро пожаловать в Переполнение стека! Пожалуйста, примите [тур] (http://stackoverflow.com/tour), осмотритесь и прочитайте [справочный центр] (http://stackoverflow.com/help), в частности [Как я могу спросить хороший вопрос?] (http://stackoverflow.com/help/how-to-ask) и [Какие темы можно задать здесь?] (http://stackoverflow.com/help/on-topic). вы планируете * UnitTests * или * приемочные испытания *? –
Извините, что я не упомянул об этом. Я говорю об модульных тестах. – Sagie
«Мне не показалось, что мне нужно их использовать, а также проверить их». В модульном тестировании имеет смысл, что для их использования вы должны их протестировать. –