如何解决不需要的Stubbing异常 [英] How to resolve Unneccessary Stubbing exception
本文介绍了如何解决不需要的Stubbing异常的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我的代码如下,
@RunWith(MockitoJUnitRunner.class)
public class MyClass {
private static final String code =Test;
@Mock
private MyClassDAO dao;
@InjectMocks
private MyClassService Service = new MyClassServiceImpl();
@Test
public void testDoSearch()throws Exception {
final String METHOD_NAME = logger.getName()。concat(。testDoSearchEcRcfInspections());
CriteriaDTO dto = new CriteriaDTO();
dto.setCode(code);
inspectionService.searchEcRcfInspections(dto);
列表< SearchCriteriaDTO> summaryList = new ArrayList< SearchCriteriaDTO>();
inspectionsSummaryList.add(dto);
when(dao.doSearch(dto))。thenReturn(inspectionsSummaryList); //此行中出错
verify(dao).doSearchInspections(dto);
}
}
我遇到异常
org.mockito.exceptions.misusing.UnnecessaryStubbingException:
在测试类中检测到不必要的stubbings:测试
清洁&可维护的测试代码需要零代码。
以下截断是不必要的(点击导航到相关的代码行):
1. - > at service.Test.testDoSearch(Test.java:72)
请删除不必要的stubbings或使用'silent'选项。更多信息:javadoc for UnnecessaryStubbingException类。
at org.mockito.internal.exceptions.Reporter.formatUnncessaryStubbingException(Reporter.java:838)
at org.mockito.internal.junit.UnnecessaryStubbingsReporter.validateUnusedStubs(UnnecessaryStubbingsReporter.java:34)
在org.mockito.internal.runners.StrictRunner.run(StrictRunner.java:49)
at org.mockito.junit.MockitoJUnitRunner.run(MockitoJUnitRunner.java:103)
at org.eclipse.jdt .internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org .eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java: 192)
请帮我解决问题
解决方案替换
@RunWith(MockitoJUnitRunner.class)
with@RunWith(MockitoJUnitRunner.Silent.class)
。My Code is as below,
@RunWith(MockitoJUnitRunner.class) public class MyClass { private static final String code ="Test"; @Mock private MyClassDAO dao; @InjectMocks private MyClassService Service = new MyClassServiceImpl(); @Test public void testDoSearch() throws Exception { final String METHOD_NAME = logger.getName().concat(".testDoSearchEcRcfInspections()"); CriteriaDTO dto = new CriteriaDTO(); dto.setCode(code); inspectionService.searchEcRcfInspections(dto); List<SearchCriteriaDTO> summaryList = new ArrayList<SearchCriteriaDTO>(); inspectionsSummaryList.add(dto); when(dao.doSearch(dto)).thenReturn(inspectionsSummaryList);//got error in this line verify(dao).doSearchInspections(dto); } }
I am getting below exception
org.mockito.exceptions.misusing.UnnecessaryStubbingException: Unnecessary stubbings detected in test class: Test Clean & maintainable test code requires zero unnecessary code. Following stubbings are unnecessary (click to navigate to relevant line of code): 1. -> at service.Test.testDoSearch(Test.java:72) Please remove unnecessary stubbings or use 'silent' option. More info: javadoc for UnnecessaryStubbingException class. at org.mockito.internal.exceptions.Reporter.formatUnncessaryStubbingException(Reporter.java:838) at org.mockito.internal.junit.UnnecessaryStubbingsReporter.validateUnusedStubs(UnnecessaryStubbingsReporter.java:34) at org.mockito.internal.runners.StrictRunner.run(StrictRunner.java:49) at org.mockito.junit.MockitoJUnitRunner.run(MockitoJUnitRunner.java:103) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
Please help me how to resolve
解决方案Replace
@RunWith(MockitoJUnitRunner.class)
with@RunWith(MockitoJUnitRunner.Silent.class)
.这篇关于如何解决不需要的Stubbing异常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文