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 为什么不是';PowerMockito不能正确地模拟这个类吗?_Java_Unit Testing_Mockito_Powermock_Powermockito - Fatal编程技术网

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)