如何使用工厂方法创建Abstract测试类的JUnit

问题描述

很抱歉提出一个看似已经回答的问题,但我找不到答案。抱歉,如果这种确切的情况已经得到解决。如果是,请指向该线程。

    public abstract class AbstractBuilderTest {
    
        protected OutputBuilder builder;
    
        protected abstract OutputBuilder createBuilder(String rootName);
    
        @Test(expected = NullPointerException.class)
        public void testAddAboveRoot() {
            String invalidResult
                    = "<orders>"
                    + "<order>"
                    + "</order>"
                    + "</orders>"
                    + "<customer>"
                    + "</customer>";
            builder = createBuilder("orders");
            builder.addBelow("order");
            try {
                builder.addAbove("customer");
                fail("expecting java.lang.RuntimeException");
            } catch (RuntimeException ignored) {
            }
        }
        
    }

public class DOMBuilderTest extends AbstractBuilderTest {
    
    @Override
    protected OutputBuilder createBuilder(String rootName) {
        return new DOMBuilder(rootName);
    }
}

public class XMLBuilderTest extends AbstractBuilderTest {

    @Override
    protected OutputBuilder createBuilder(String rootName) {
        return new XMLBuilder(rootName);
    }

}

使用JUnit3(在其中扩展TestCase的情况下),它可以运行,但是对于JUnit 4,它会抛出:

java.lang.InstantiationException
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)