gpt4 book ai didi

java - 重构静态类,以便我可以对其进行单元测试

转载 作者:行者123 更新时间:2023-12-01 23:57:43 25 4
gpt4 key购买 nike

我有一个静态类,我想重构它,以便我可以更改属性文件等的名称,并能够更轻松地对其进行单元测试。

目前我有这个:

public enum MySettings {

INSTANCE;

//priv vars
private string applicationUrl;

private MySettings() {

MappingJsonFactory jf = new MappingJsonFactory();

ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
InputStream mySettingsInputStream = classLoader.getResourceAsStream("a.properties");

Properties mySettingsProperties = new Properties().load(mySettingsInputStream);

// code below to load json and set priv vars etc.




}

public String getApplicationUrl() {
return applicationUrl;
}
}

如何在单元测试中将属性文件的名称设置为其他名称?

最佳答案

“控制反转。”在这里执行此操作的最简单方法是将其作为构造函数参数。更高端的是 IOC 框架,例如 Spring。

更糟糕的情况是,因为您正在处理枚举 - 可能需要分解一个接口(interface),然后提供一个实现枚举。或者更好:

public enum Settings {
PRODUCTION("prod.xml"), UNIT_TESTING("dev.xml");
//...

关于java - 重构静态类,以便我可以对其进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15324513/

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