采用maven结构的项目.进行单元测试时,需要将测试的配置信息写在test/resource/conf/ 下. 生产的配置信息写在main/resource/conf下. 但新建测试用例,通过org.nutz.ioc.impl.PropertiesProxy进行单元测试时,读取的总是main/resource/conf下的配置信息.
代码如下:
ioc配置:
qspConf : {
type : "org.nutz.ioc.impl.PropertiesProxy",
fields : {
paths : ["conf/qsp.properties"]
}
test/resource/conf/qsp.properites
QS_Q_REQListName=QS_Q_REQ:rcs13
Resp_addr=condy
main/resource/conf/qsp.properties
QS_Q_REQListName=QS_Q_REQ:rcs13
Resp_addr=rcs13
单元测试用例代码:
package ecc.c3.qsp.service;
import static org.junit.Assert.*;
import org.junit.Test;
import org.nutz.ioc.impl.PropertiesProxy;
import ecc.c3.nutz.test.NutBeanTest;
public class QSPServiceTest extends NutBeanTest {
@Test
public void testGetQS_Q_REQListName() {
PropertiesProxy qspConf=getBean("qspConf",PropertiesProxy.class);
//测试失败,qspConf.get("Resp_addr")返回的是rcs13
assertEquals("condy", qspConf.get("Resp_addr"));
}
}
//测试失败,qspConf.get("Resp_addr")返回的是rcs13. 在classpath里面搜索配置文件时先搜索到classes下conf/qsp.properties而不是test-classes/conf/qsp.properites.