2
我使用PowerMockito這是我的測試:爲什麼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.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());
但它似乎沒有不影響我的生產代碼。我究竟做錯了什麼?