gpt4 book ai didi

java - 通过更改最终静态变量来测试方法

转载 作者:行者123 更新时间:2023-11-28 21:09:33 25 4
gpt4 key购买 nike

我有一个 protected 方法,如下所示。它使用 Constants.java 文件中的最终静态变量。

class A {
protected Configuration connectConfig() {
ConfigDescriptor desc = new ConfigDescriptor.Builder()
.project(Constants.REMOTE_CONFIG_PROJECT_NAME)
.name(Constants.REMOTE_CONFIG_PROJECT_CONFIG_NAME)
.version(Constants.REMOTE_CONFIG_PROJECT_VERSION)
.build();

return ConfigProvider.of(desc, getClass().getClassLoader());
}

public boolean process() {
Configuration config = connectConfig();
if(config == null) {
return false;
}
}
}

现在我想对这个方法 process 进行单元测试,以使 remote config 失败。

如果我只是测试 process() 方法,它将通过,因为 Constants.java 具有正确的连接值。为了进行测试,我想更改这些值,以便远程配置 返回 null;

注意:我们不想使用 Mockito 来模拟值。

最佳答案

使用模拟框架,例如 Mockito ,你可以定义一个 A 的 spy ,你可以在其中指定 connectConfig() 的结果:

A spy = spy(new A());
doReturn(null).when(spy).connectConfig();

Assert.assertFalse(spy.process());

关于java - 通过更改最终静态变量来测试方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38623109/

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