gpt4 book ai didi

java - 如何调用模拟模拟对象的实际构造函数?

转载 作者:搜寻专家 更新时间:2023-10-31 19:32:10 24 4
gpt4 key购买 nike

我有类似的代码

class superClass {
public String transform(String str) {
//lots of logic including ajax calls
return("Modified"+str);
}
}

class baseClass extends superClass {
private FetchData fetchData;
baseClass(FetchData fetchData) {
this.fetchData = fetchData;
}

public String parse() {
String str = fetchData.get();
//some more logic to modify str
return transform(str);
}
}

我正在使用 mockito 和 junit 对其进行测试。我正在模拟 baseClass 并做这样的事情

baseClass baseMock = Mockito.mock(baseClass.class);
Mockito.when(baseMock.parse()).thenCallRealMethod();
Mockito.when(baseMock.transform()).thenReturn("Something");

我如何注入(inject)模拟的 fetchData,因为它是通过构造函数注入(inject)的?

最佳答案

您可以使用 Mockito.spy ( http://site.mockito.org/mockito/docs/current/org/mockito/Mockito.html#spy ):

baseClass object = new baseClass(new FetchData());
baseClass spy = Mockito.spy(object);

Mockito.when(spy.parse()).thenCallRealMethod();
Mockito.when(spy.transform()).thenReturn("Something");

关于java - 如何调用模拟模拟对象的实际构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40337116/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com