Java 为什么不是';PowerMockito不能正确地模拟这个类吗?
我正在使用,这是我的测试:Java 为什么不是';PowerMockito不能正确地模拟这个类吗?,java,unit-testing,mockito,powermock,powermockito,Java,Unit Testing,Mockito,Powermock,Powermockito,我正在使用,这是我的测试: import com.PowerMockitoProduction; import org.apache.commons.httpclient.HttpClient; import org.junit.Test; import org.junit.runner.RunWith; import org.powermock.api.mockito.PowerMockito; import org.powermock.core.classloader.annotations
import com.PowerMockitoProduction;
import org.apache.commons.httpclient.HttpClient;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
@RunWith(PowerMockRunner.class)
@PrepareForTest(HttpClient.class)
public class PowerMockitoTest {
@Test(expected = UnsupportedOperationException.class)
public void test() throws Exception {
PowerMockito.whenNew(HttpClient.class).withNoArguments().thenThrow(new UnsupportedOperationException());
new PowerMockitoProduction().createClient();
}
}
这个测试失败了
java.lang.AssertionError: Expected exception: java.lang.UnsupportedOperationException
以下是PowerMockitoProduction
的功能:
package com;
import org.apache.commons.httpclient.HttpClient;
public class PowerMockitoProduction {
public void createClient() {
HttpClient client = new HttpClient();
System.out.println(client);
}
}
我希望这段代码基于我测试中的这一行创建一个模拟的HttpClient
:
PowerMockito.whenNew(HttpClient.class).withNoArguments().thenThrow(new UnsupportedOperationException());
但它似乎并没有影响我的生产代码。我做错了什么?我知道我做错了什么。我需要改变:
@PrepareForTest(HttpClient.class)
到
@PrepareForTest(PowerMockitoProduction.class)