gpt4 book ai didi

tomcat - junit测试中如何初始化servletContext

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

在我的项目中,我在ServletContext中初始化配置数据,然后我可以从内存中读取数据,并且运行良好,但是现在我写了一些junit测试,它无法初始化ServletContext。你能告诉我怎么做吗?

最佳答案

有一种模拟 servlet 的方法:How to mock servlet in spring mvc ,但我认为你不需要在servletContext中初始化配置数据,你可以使用一个静态变量来存储配置数据,当你启动服务器时你可以初始化它。代码如下:

public class InitProperties {

private static Logger logger = Logger.getLogger(InitProperties.class);

public static Map<String, String> propertiesMap = new HashMap<String, String>();

public static void initProperties(){
String filePath = FilePathConstant.XXX_CONF;
Properties props = new Properties();
InputStream in = null;
try {
in = Thread.currentThread().getContextClassLoader().getResourceAsStream(filePath);
props.load(in);

Set keySet = props.keySet();

for(Object o: keySet){
propertiesMap.put(o.toString(), props.getProperty(o.toString()).toString());
}
} catch (Exception e) {
logger.error("Read property value by key failed!", e);
} finally {
try {
in.close();
} catch (IOException e) {
logger.error("Close inputStream failed!", e);
}

}
}

你只需要在启动服务器时调用方法InitProperties.initProperties(),然后你就可以从InitProperties.propertiesMap中读取配置数据。

关于tomcat - junit测试中如何初始化servletContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19088447/

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