【发布时间】:2015-03-10 12:32:44
【问题描述】:
我创建了一个 JUnit 测试,它使用数据库连接来获取一些数据,然后将结果与某个值进行比较以进行验证。
我知道我可以使用Mock Object 概念来删除测试函数的数据库依赖,但我不知道该怎么做。
这是我的测试类方法-
ValidateTest.java
public void testValidateID() {
Validate validateFields = new Validate();
MyID userID = readXmlAndReturnID("UserID.xml");
boolean expectedResponse = true;
boolean actualResponse = validateFields.validateSpecifiedID(myID);
Assert.assertEquals(expectedResponse, actualResponse);
}
这是我使用数据库的实际类方法 -
验证.java
public boolean validateSpecifiedID(MyID myID){
List<String> incomingList = myID.getuserID();
UserIDProgramHome userIDProgramHome = new UserIDProgramHome();
//this requires postgres database connectivity
idList = userIDProgramHome.findIDsByProgram(myID);
if(idList.get(0).equals(incomingList.get(0))){
return true;
}
else{
return false;
}
}
【问题讨论】:
-
“我知道我可以使用 Mock Object 概念 [...],但我不知道该怎么做。”然后你首先应该完成一些关于它的教程。在研究了这个有点复杂的领域之后,您会发现您的课程与您的其他课程紧密耦合
UserIDProgramHome。这些依赖关系使模拟变得非常困难。最后,您将不得不重新设计您的应用程序。
标签: java junit mocking mockito junit4