JMockit:覆盖抽象方法的测试方法

问题描述 投票:0回答:1

我目前有以下课程:

public abstract class superClass {
    abstract void abstractTest();
}

public class classForTesting extends superClass {
    @Override
    void abstractTest() {
        ...
    }
}

我目前正在为classForTesting编写单元测试(使用JUnit + JMockit),但我不确定如何测试abstractTest()。我试过模拟超类,但我仍然无法调用abstractTest()。

任何想法将不胜感激。

谢谢!

java unit-testing junit jmockit
1个回答
1
投票

如果您不希望abstractTest是公共的,那么请测试调用abstractTest的方法。我还将类名更改为以大写字母开头。

public abstract class SuperClass {
    abstract void abstractTest();
}

public class ClassForTesting extends SuperClass {
    @Override
    void abstractTest() {
        ...
    }

    public void publicMethod() {
        abstractTest() 
    }

}

现在测试公共方法:

public class PublicTest {

    private ClassForTesting classForTesting;

    @Before
    public void setUp(){
        classForTesting = ClassForTesting();
    }

    @Test
    public void testMethod() {
        classForTesting.publicMethod();
        ...
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.