@Override
public PageInfo<RequestList> getAllRequest(int startPage, int pageSize, String accountName,String userName) {
PageHelper.startPage(startPage, pageSize);
List<RequestList> list=requestListDao.getAllRequest(accountName,userName);
for(RequestList requestList:list) {
switch (requestList.getStatus()) {
case "0":
requestList.setStatus("Waiting");
break;
case "1":
requestList.setStatus("Closed");
break;
case "2":
requestList.setStatus("Cancel");
break;
default:
requestList.setStatus("NAN");
break;
}
}
PageInfo<RequestList> pageInfo = new PageInfo<RequestList>(list);
return pageInfo;
}
@Override
public void createRequest(RequestList requestList) {
Integer coount=requestListDao.getTime(requestList.getCreateName());
// AWSSnsUtil.sendMassageToSns(requestList.getAccountName());
requestList.setTime(++coount);
requestListDao.createRequest(requestList);
}
测试代码:
@InjectMocks
RequestListServiceImpl requestListServiceImpl;
@Mock
RequestListDao requestListDao;
@Before
public void setup(){
MockitoAnnotations.openMocks(this);
}
@Test //it's ok
public void testGetAllRequest() throws Exception {
RequestList r=new RequestList();
r.setStatus("0");
when(requestListDao.getAllRequest(anyString(), anyString())).thenReturn(Arrays.<RequestList>asList(r));
PageInfo<RequestList> res=requestListServiceImpl.getAllRequest(1,1,"1","1");
Assert.assertNotNull(res);
}
@Test //this test is error, the error is requestListServiceImpl is not mock.
public void testCreateRequest() throws Exception {
when(requestListDao.getTime(anyString())).thenReturn(0);
RequestList r=new RequestList();
r.setCreateName("demo");
requestListServiceImpl.createRequest(r);
verify(requestListServiceImpl).createRequest(r);
}
错误信息
org.mockito.exceptions.misusing.NotAMockException:
Argument passed to verify() is of type RequestListServiceImpl and is not a mock!
Make sure you place the parenthesis correctly!
See the examples of correct verifications:
verify(mock).someMethod();
verify(mock, times(10)).someMethod();
verify(mock, atLeastOnce()).someMethod();
当我将@injectmocks更改为@mock时,第二个测试是可以的,但第一个测试是错误的。我需要添加到一个stubbingwhen(requestListServiceImpl.getAllRequest(anyInt(),anyInt(),anyString(),anyString())).thenreturn(new pageinfo<>());
我不知道怎么做,
injectmocks是否必要?
这里:
verify(requestListServiceImpl)
和
@InjectMocks
RequestListServiceImpl requestListServiceImpl;
消息很清楚:您验证Mockito为您创建的mock对象。
问题内容: 我目前正在研究Mockito框架,并且已经使用Mockito创建了一些测试用例。但后来我读到的不是调用模拟( SomeClass的 的.class)我可以使用和-我需要做的唯一一件事情就是我的注释测试类或使用的方法。 但这不起作用-似乎不会起作用!这是我的2个代码修订-一个使用注释,另一个不使用注释。 我究竟做错了什么? 正如我所说-这项工作很棒。但是以下内容不会: 这是课程: 我想念
问题内容: 因此,我了解到在Mockito中,@ InjectMocks将使用@Mock的注解注入所有可以注入的内容,但是如何处理这种情况呢? 假设MockObject2的属性类型为MockObject1,而SystemUnderTest的属性类型为MockObject2。我想将模拟对象1注入到模拟对象2中,并将模拟对象2注入到systemUnderTest中。 注释可以吗? 问题答案: 由于我在
问题内容: 和框架有什么区别? 问题答案: 创建一个模拟。创建该类的实例,并将使用(或)注释创建的模拟注入该实例。 请注意,你必须使用或初始化这些模拟并注入它们。
我在课堂上有两个方法。我只想测试孤立的其中一个。
本文档的涵义用一句话总结就是:不要让Apache在分析配置文件的时候使用到DNS解析。如果Apache在分析配置文件时用到了DNS解析,您的服务器就会发生可靠性的问题(也可能根本无法启动),或者遭致拒绝(偷窃)服务攻击(包括用户可以从其他用户那里偷窃点击)。 一个简单示例 <VirtualHost www.abc.dom> ServerAdmin webgirl@abc.dom DocumentR
MongoDB 提供了两个用于备份和还原操作的实用工具:MongoDump 和 MongoRestore。它们对于创建小型数据库的备份和还原数据非常有用。