你能举个例子说明我如何使用模拟对象,Spring或任何其他框架在没有DAO的情况下测试我的服务层。我的Java代码如下所示:
public int myServiceMethod(int number) {
int myInt = Factory.getDAOImpl.getNumber();
return myInt + number * 8;
}
我想测试myServiceMethod的逻辑但不测试DAO方法。 可能吗?我必须重构它吗?你能告诉我一个如何测试这个简单方法的例子。 谢谢
答案 0 :(得分:6)
在您的示例中,您只需要模拟DAO(例如使用Mockito),并修复要返回的数字。
DAOImpl myDao = mock(DAOImpl.class);
when(myDao.getNumber()).thenReturn(7);
调用方法getNumber
时,您将始终获得7.在创建服务时传递此DAO,并正常编写测试:
assertEquals(224, service.myServiceMethod(4));
我希望这有帮助!