我有两个类,一个在另一个里面工作
public class Class1 {
public Class1(){}
public void myMethod(List<String> list){
for (String element: list){
Class2 class2 = new Class2(element);
class2.anotherMethod();
}
}
}
public class Class2 {
private final String element;
public Class2(String element) {
this.element = element;
}
public void anotherMethod(){
// do stuff
}
}
我的问题是,我如何才能监视Class1并检查当我调用class1.myMethod时,class2对象被创建 * 一次,用于列表中的每个元素 *,并在同一块中调用anotherMethod?
我正在使用Java 11和Mockito 3.5,无法更改项目的POM。
1条答案
按热度按时间vfwfrxfs1#
一般来说,模拟对象的构造存在设计问题,重构可测试性应该是一个更好的解决方案。(例如,按照Andrew S的建议将Class2Factory注入到类中)
但如果重构不可行,
我们可以利用模拟对象结构