这是我的代码
@Test
public void testProcess() throws Exception {
GenericResults result = new GenericResults();
result.setCount(2);
result.setSuccess(true);
result.setTarget((Integer)100);
PowerMockito.when(PrcssDAO.createProcess(Matchers.anyString(), Matchers.anyString())).thenReturn(result);
}
返回的result
对象始终为null。这是为什么?
答案 0 :(得分:1)
您是否考虑过测试类中的这些步骤:
@RunWith(PowerMockRunner.class)
注释
测试用例的类级别。@PrepareForTest(ClassThatContainsStaticMethod.class)
测试用例的类级别的注释。PowerMock.mockStatic(ClassThatContainsStaticMethod.class)
模拟这个类的所有方法。PowerMock.replay(ClassThatContainsStaticMethod.class)
进行更改
重播模式的课程。PowerMock.verify(ClassThatContainsStaticMethod.class)
进行更改
要验证模式的类。这是source
答案 1 :(得分:0)
好的,我在本地复制你的代码以弄明白,你需要使它工作的是在你的代码中添加上面提到的答案的第三个选项,这样测试的代码就会变成:
@Test
public void testProcess() throws Exception {
GenericResults result = new GenericResults();
result.setCount(2);
result.setSuccess(true);
result.setTarget(100);
// The next line is the one you're missing
PowerMockito.mockStatic(PrcssDAO.class);
Mockito.when(PrcssDAO.createProcess(Matchers.anyString(), Matchers.anyString())).thenReturn(result);
assertNotNull(PrcssDAO.createProcess("any", "argument"));
}