背景描述:
要测试下面MyClass类中的func函数,但是MyClass没有默认构造函数:public class MyClass{
private OtherClass obj;
public MyClass(OtherClass obj){ //OtherClass的构造比较麻烦,而其obj这个对下面func的测试没有帮助
this.obj = obj;
....
} public void func(){ //要测试的函数
....
}
}
由于上面的OtherClass的构造比较麻烦,而其obj这个对下面func的测试没有帮助,所以产生了绕过构造函数的想法;
具体已经有一种方法:通过反序列化的手段(具体比较复杂,有可能要涉及到对序列化文件进行修改的情况);这里想让大家出出主意,有没有更好的别的方法。
要测试下面MyClass类中的func函数,但是MyClass没有默认构造函数:public class MyClass{
private OtherClass obj;
public MyClass(OtherClass obj){ //OtherClass的构造比较麻烦,而其obj这个对下面func的测试没有帮助
this.obj = obj;
....
} public void func(){ //要测试的函数
....
}
}
由于上面的OtherClass的构造比较麻烦,而其obj这个对下面func的测试没有帮助,所以产生了绕过构造函数的想法;
具体已经有一种方法:通过反序列化的手段(具体比较复杂,有可能要涉及到对序列化文件进行修改的情况);这里想让大家出出主意,有没有更好的别的方法。
解决方案 »
- 在校生不知道该如何学习了
- MD5
- spring 获取上下文的问题
- 新手请教:刚用Eclipse3.0+Lomboz+Tomcat,照陈刚的《Eclipse从入门到精通》中的“JSP的Hello World”IE中怎么出现下面的提示?
- DynaValidatorForm与弹出结果窗口的问题怎么解决
- 光华冠群软件公司招聘Java软件开发工程师(工作地点:成都)
- Struts问题,关于<html:hidden>标签。
- weblogic services和web services有什么区别啊?
- 如何判断在一个路径下文件是否存在?在线等候100分
- ssh中使用jfreechart报错,贴上代码求指错~
- Ajax返回奇怪的值
- [jquery uploadify 插件问题。。求教]
new MyClass(null) 不就可以了
如果func用不到obj,你直接传个null不就行了,当然,前提是你的MyClass构造函数不发生null异常
不知道LZ是怎么测试的?junit?
如果开发者写了有参的构造函数,并且没有写无参的构造函数,此时,该类就没有无参的构造函数了。lz,如果obj不容易构造,且对func()来说又没有用处,那就给构造函数一个null吧。如7楼所述
是Junit测试,如果传入null会发生相关的异常,而且前提是不能修改原来的类
public SubOtherClass extends OtherClass{
public SubOtherClass(){} }
SubOtherClass的构造函数照样要实现父类的构造函数;还是回到原来的问题
public MyClass(OtherClass obj){
this.obj = obj;
....
}
这个构造函数的时候
如果你在别的地方用MyClass myClass = new MyClass();来实例化
则你必须在MyClass类里面加上public MyClass(){ }这构造函数
//....
//copy MyClass#func()
}
}权宜的做法,不推荐,不过楼主那样的测试本身就不推荐