我的项目遇到了问题,我在一些示例中提出了问题。
package com.sample.code;
public abstract class AbstractClass {
public String var1;
//in this class NO default constructor
public String method1(){
return "method1 "+privateMethod();
}
protected AbstractClass(String var1){
this.var1=var1;
}
private String privateMethod(){
return "private method";
}
}
我有一个私有方法,由我的实际方法和受保护的单个论证构造函数使用。
我需要为我的'method1()
'编写测试用例
我需要使用junit和EasyMock。
答案 0 :(得分:-1)
Test类也是一个典型的java类,它可以扩展其他类,甚至测试类,所以你可以这样做:
class AbstractClassTest extends AbstractClass
{
public AbstractClassTest()
{
super("some_string");
}
@Test
public void testMethod1()
{
//....
}
}
由于测试类正在扩展基类,因此必须在其构造函数中调用基类构造函数。你没有这个私有字段的setter,所以如果你需要测试更多的实例,你可以在测试类中实例化测试类:
AbstractClassTest abc = new AbstractClassTest("other_string");
要做到这一点,你需要第二个ctor用于测试课程:
public AbstractClassTest(String param)
{
super(param);
}
答案 1 :(得分:-1)
我会使用具体的类实现测试它,如:
MyConcreteClass clazz = ..;//MyConcreteClass could be local class or actual production class
Assert.assertEquals("method1 private method",clazz.method1());