public class DBLayer{
public Calendar getUpdateDate(long id){
//database logic
return date;
}
}
public class Service{
private DBLayer dbLayer = new DBLayer();
public int methodA(){
Calendar updateDate = dbLayer.getUpdateDate(101L);
//some logic
}
}
字符串
我想为Service类methodA编写junit测试,但不想调用getUpdateDate。通过监视或模拟它,也会调用此getUpdate。
我尝试了使用Mockito.doReturn()的spy的建议,但是getUpdateDate也被调用了。我怎么能完全忽略调用呢?或者我应该使用任何其他框架(除了PowerMock)来获得这个功能,它可以将这个DBLayer类视为黑盒并忽略实际调用的方法。
1条答案
按热度按时间t9eec4r01#
方法getUpdateDate()是服务方法的一部分。
你不能测试一个方法X,然后像这样定义你的测试:“哦,我想测试X,X执行了A,但我忽略了A”。
如果要测试服务方法,则必须同时测试getUpdateDate()或模拟getUpdateDate(),以便它返回定义的值。