Я очень плохо знаком с тестированием и сейчас играю с интеграционным тестированием.
Я пишу этот фрагмент кода, чтобы вставить новую запись в базу данных и проверить массивы до и после. Но по какой-то причине кажется, что он возвращает false, и я не уверен, что все делаю правильно:
Вот класс JUnit:
public class TestJunit {
private Question question;
private QuestionDAO questionDaoMock;
protected void setUp(){
question = new Question();
questionDaoMock = mock(QuestionDAO.class);
question.setQuestiondao(questionDaoMock);
}
@Test
public void testAdd() {
questionDaoMock.openCurrentSessionwithTransaction();
List<Question> currentQuestions = new ArrayList<Question>();
currentQuestions = questionDaoMock.findAll();
question.setChapterId(64);
question.setText("Rezultatul calculului 54*2-76:2 este...");
questionDaoMock.persist(question);
currentQuestions.add(question);
List<Question> newQuestions = new ArrayList<Question>();
newQuestions = questionDaoMock.findAll();
questionDaoMock.closeCurrentSessionwithTransaction();
assertEquals(currentQuestions.size(), newQuestions.size());
}
}
Это мой TestRunner:
public class TestRunner {
public static void main(String[] args) {
Result result = JUnitCore.runClasses(TestJunit.class);
for (Failure failure : result.getFailures()) {
System.out.println(failure.toString());
}
System.out.println(result.wasSuccessful());
}
}
Я уже пробовал код в функции testAdd () отдельно от основной функции, просто чтобы проверить, работает ли вставка и работает ли она. Я сравнил размер массивов, и он работает также, когда я бегу из основного метода. Что я делаю не так?