Unit testing 模拟嵌套静态类和方法

Unit testing 模拟嵌套静态类和方法,unit-testing,mockito,powermock,Unit Testing,Mockito,Powermock,我有一个静态类和方法,我想模拟从另一个静态方法调用的静态方法,PowerMockito可以吗?我希望有一个带有when()的模拟getServices,并在单元测试中调用getServiceDetail()时返回定义的字符串 public class MyUtil() { private static String getServices() { return System.getenv("MY_SERVICES"); } private static

我有一个静态类和方法,我想模拟从另一个静态方法调用的静态方法,PowerMockito可以吗?我希望有一个带有when()的模拟getServices,并在单元测试中调用getServiceDetail()时返回定义的字符串

public class MyUtil() {
    private static String getServices() {
        return System.getenv("MY_SERVICES");
    }

    private static String getServiceDetail(String serviceName){

        String serviceDetail;

        if(getServices() != null) {
           ...
        }

        return serviceDetail;

    }
}
我试过:

PowerMockito.mockStatic(MyUtil.class);
Mockito.when(MyUtil.getServices()).thenReturn("mysql, rabbit");

您是在模仿
MyUtil
类,还是在尝试测试
MyUtil
类?另外,在
getServices()中null
检查,是否将
servicedeail
设置为
getServices()
?这里有很多问题。我不确定您正在测试什么(哪个类、方法等),预期的结果是什么,等等。您能提供更多细节吗?