模拟最终类构造函数

时间:2018-01-23 13:42:42

标签: java unit-testing junit mockito powermockito

我想模拟final class的构造函数。示例代码如下。它不起作用。它抛出运行时异常。请帮我看看如何模拟final class的构造函数

感谢。

我知道this问题任务,但它不起作用。所有课程都不是最终的问题。在我的问题中包含最终课程。

这是容器类

public class FooClass {

    public void someMethod(){
         FinalClass finalClass = new FinalClass("arg1");
         finalClass.printMsg();
    }
}

这是最后一堂课:

public final class FinalClass {

    public FinalClass() {
         this("some msg");
    }

    public FinalClass(String arg1){
         throw new RuntimeException("msg");
    }

    public void printMsg(){
         System.out.println("success");
    }

}

这是测试类:

@RunWith( PowerMockRunner.class )
@PowerMockRunnerDelegate(MockitoJUnitRunner.class)
@PowerMockIgnore({"javax.management.*", "org.apache.http.conn.ssl.*",       "com.amazonaws.http.conn.ssl.*", "javax.net.ssl.*"})
@PrepareForTest({FinalClass.class})
public class FooTest {

    @InjectMocks
    FooClass fooClass;

    @Before
    public void before() throws MalformedURLException {
         MockitoAnnotations.initMocks(this);
    }

    @Test
    public void finalClass() throws Exception {
        FinalClass finalClassMock = PowerMockito.mock(FinalClass.class);
        PowerMockito.whenNew(FinalClass.class).withAnyArguments().thenReturn(finalClassMock);

        fooClass.someMethod();
    }

}

您说that question与我的问题相同。但是你尝试我的问题,因为最后的课程,这个解决方案不起作用。请仔细阅读问题。

0 个答案:

没有答案