gpt4 book ai didi

java - 如何模拟本地创建的对象?

转载 作者:搜寻专家 更新时间:2023-11-01 02:20:29 25 4
gpt4 key购买 nike

这是我的课。

class Test {
public void print(){
RestTemplate restTemplate = new RestTemplate();
restTemplate.getForObject("url", String.class);
}
}

为了测试这个类,我想模拟“RestTemplate”。有没有办法在不更改代码的情况下做到这一点。

最佳答案

如果不更改代码,那不能完成,至少不能以优雅的方式完成。

每次进入 print() 方法时都会创建一个新的 RestTemplate 实例,因此无法传入 mock。

稍微改变方法以使用 RestTemplate 作为参数。在运行时,这将是 RestTemplate 的实际实例,但在对该方法进行单元测试时,它能够接受模拟。

class Test {
public void print(RestTemplate restTemplate){
restTemplate.getForObject("url", String.class);
}
}

class TestTest {

private final Test instance = new Test();

@Test
public testPrint() {
RestTemplate restTemplateMock = mock(RestTemplate.class);

instance.print(restTemplateMock);

// TODO: verify method calls on the mock
}
}

关于java - 如何模拟本地创建的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46110761/

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