I am very new to testing and I'm playing right now with integration testing.
I'm writing this piece of code to insert a new entry in the database and test the before and after arrays. But for some reason, it seems to return false and I'm not sure if I'm doing everything right:
Here is the JUnit Class:
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());
}
}
This is my 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());
}
}
I tried already the code in the testAdd() function separately in the main function just to check if insertion works and it does. I compared the arrays size and it works as well when I'm running from main method. What am I doing wrong?