【发布时间】:2020-11-20 22:44:30
【问题描述】:
Class ToBeTested{
@Autowired
private Repo1Src repo1;// JPA repository
@Autowired
private Repo2Src repo2;// JPA repository
public Map<String, Object> getAll( long id) {
List<Repo1Res> repo1Res= repo1.findAll(id);
List<String> systems = new ArrayList<>(repo1Res.size());
Map<String, SysSceDto> resultMap= getCorrespondanceSystemSytemDot(repo1Res);
systems.addAll(resultMap.keySet());
List<RepoRes2> repo2Res= repo2.findAll(systems,
id,
1L);
return new HashMap();
}
}
@RunWith(MockitoJUnitRunner.class)
class ToBeTestedTests{
@Mock
private Repo1Src repo1;
@Mock
private Repo2Src repo2;
@InjectMocks
private ToBeTested toBeTested;
@Test
public void test(){
List<Repo1Res> lst1= new ArrayList<>();
List<Repo2Res> lst2= new ArrayList<>();
List<String> systems = new ArrayList<>();
generate(lst1, lst2, systems );
when(repo1.findAll(1)).thenReturn(lst1);
when(repo2.findAll(systems , 1, 1L)).thenReturn(lst2);
toBeTested.getAll(1);
}
}
我有以下异常: org.mockito.exceptions.misusing.UnnecessaryStubbingException 当我尝试运行测试时,这是我调用 when(repo2.findAll(systems , 1, 1L)).thenReturn(lst2 );
堆栈跟踪:
org.mockito.exceptions.misusing.UnnecessaryStubbingException:
Unnecessary stubbings detected in test class: ToBeTestedTests
Clean & maintainable test code requires zero unnecessary code.
Following stubbings are unnecessary (click to navigate to relevant line of code):
1. -> at ToBeTestedTests.test(ToBeTestedTests.java:22)
Please remove unnecessary stubbings or use 'lenient' strictness. More info: javadoc for UnnecessaryStubbingException class.
【问题讨论】:
-
需要在这里上传更清晰的代码和堆栈跟踪结果吗?我的意思是为什么生成(lst1,lst2,系统)?
-
generate(lst1, lst2, systems ) 只是初始化 lst1, lst2, 系统变量它是一个简单的 list.add 函数
-
我添加了额外的细节
标签: java spring-boot mocking mockito