Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JMockit:重写抽象方法的测试方法_Java_Unit Testing_Junit_Jmockit - Fatal编程技术网

Java JMockit:重写抽象方法的测试方法

Java JMockit:重写抽象方法的测试方法,java,unit-testing,junit,jmockit,Java,Unit Testing,Junit,Jmockit,我目前有以下课程: public abstract class superClass { abstract void abstractTest(); } public class classForTesting extends superClass { @Override void abstractTest() { ... } } 我目前正在为classForTesting编写一个单元测试(使用JUnit+JMockit),但我不确定如何测试a

我目前有以下课程:

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

public class classForTesting extends superClass {
    @Override
    void abstractTest() {
        ...
    }
}
我目前正在为classForTesting编写一个单元测试(使用JUnit+JMockit),但我不确定如何测试abstractTest()。我试图模拟超类,但仍然无法调用abstractTest()

任何想法都将不胜感激


谢谢大家!

如果不希望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();
        ...
    }
}

您不能模拟被测试的类。您通常会模拟依赖项。因此,只需调用方法
abstractTest
并测试所需的行为。感谢@Seelenvirtuose的建议。但是,
abstractTest
对任何人都不可见(通过设计),因此不能直接调用它。您对如何处理此类案件有何建议?