我正试图为我的一个班级编写junit考试。设计不是我做的;这是一个相当古老的应用程序,java7,struts1和clydeDB框架。
这些类的设置如下:
ProcessObj
,
IProcessObj
(界面),
ProcessHome
,
public class ProcessHome {
private static ProcessHome instance = new ProcessHome();
//default Constructor
private ProcessHome() {
}
public static ProcessHome getInstance() {
return instance;
}
public IProcessObj getProcessObj() throws POException {
return ProcessObj.getInstance(); //this is below
}
}
public class ProcessObj implements IProcessObj {
// instance
private static IProcessObj instance;
...
//constuctor
private ProcessObj() throws POException {
init();
}
static IProcessObj getInstance() throws POException {
if (instance == null) {
instance = new ProcessObj();
}
return instance;
}
//jUnit test setUp
@Before
public void setUp() throws Exception {
public static IProcessObj iPO;
iPAO = ProcessHome.getInstance()
.ProcessObj();
Constructor<ProcessObj> pa = ProcessObj.class
.getDeclaredConstructor();
pa.setAccessible(true);
iPO = pa.newInstance();`
...
它在这里工作正常,但是在ProcessObj
中,初始化方法通过另一组类,这些类的设置与上面的过程对象完全相同,用于数据访问层。
有没有办法可以创建一个可用的过程对象实例?有人可以向我解释一下究竟发生了什么吗?我一直在InvocationTargetException
。
答案 0 :(得分:0)
为什么你不做这样的事情:
{{1}}