Open JiaRG opened 3 years ago
这个问题在之前的Issue中有被讨论过,需要保留targetClass
参数主要的原因是Testable允许将目标类放在参数首位(有些Mock方法需要与原对象交互)。
假如参数是可省略的,那么在测试类ATest里看到这个Mock定义
@MockMethod
public String bm(B b) {
return "bmMock";
}
它既可能是Mock类型B当中的String bm()方法,也可能Mock是A类型当中的String bm(B b)方法,就会产生歧义。
https://github.com/alibaba/testable-mock/blob/6616ff1174447a50fdf7db3cd9b8d269f7ca6be0/demo/java-demo/src/test/java/com/alibaba/demo/association/CookerServiceMock.java#L6-L26
是否考虑提供这样一种约定,
targetClass
为空时就代表Mock容器所关联的被测类中的方法