kuyacai
发贴: 20
积分: 0
|
于 2004-08-25 09:52
有这样一个类,如何进行单元测试 需要进行测试的类 public class HelloWord{ private SystemConfig cfg; public HelloWord(){} public HelloWord(SystemConfig cfg){ this.cfg = cfg; } public void setCfg(SystemConfig cfg){ this.cfg = cfg; } public String getWord(){ boolean flag = cfg.getXXXXX();//根据系统配置取得某个开关变量。 String val = ""; if(flag){ val = "OK";//实际上这儿会是一些业务逻辑处理 }else{ val = "Error"; } return val; } }
public class SystemConfig implements ConfigDataListener{
private static SystemConfig cfg; private SystemConfig() { //加载一些配置信息 doConfigRefresh(); } //返回一个单例实例 public static SystemConfig getInstants() { synchronized(SystemConfig.class){ if(cfg == null){ cfg = new WebConfig(); } } return cfg; } public void doConfigRefresh() { //读配置等 } //下面是一些getter方法。 }
在对HelloWord进行单元测试时,可以采用Mock objects的方式,对SystemConfig创建一个模拟对象。然而SystemConfig用的是私有构造器,没法继承。 并且如果要加载SystemConfig的话,需要加载容器等,这显然不是我要测试HelloWord要做的事情,并且,在单元测试时,我需要尽可能的隔离外部依赖。 请问有什么好办法?谢谢! 我采用的是Junit测试框架。
|