相关疑难解决方法(0)

PowerMockito+Junit - 模拟 System.getenv

我试图在课堂上嘲笑的路线是:

String x[] = System.getenv("values").split(",")
for(int i=0;i<=x.length;i++){
  //do something
}
Run Code Online (Sandbox Code Playgroud)

据我所写如下:

@RunWith(PowerMockRunner.class)
   @PrepareForTest({System.class})
   public class test{
           @Test
           public void junk(){

            PowerMockito.mockStatic(System.class);
            PowerMockito.when( System.getenv("values"))).thenReturn("ab,cd"); 
           }

         }
Run Code Online (Sandbox Code Playgroud)

在调试时,我在 for 循环行中得到空指针。在代码库中检查 System.getenv("values") 时,仍然发现它为空

请赞成决议

编辑:确切的问题可复制场景:

package com.xyz.service.impl;

public class Junkclass {
    public String tests(){
        String xx[] = System.getenv("values").split(",");
        for (int i = 0; i < xx.length; i++) {
            return xx[i];
        }
        return null;
    }
}

package com.xyz.service.impl
@InjectMocks
@Autowired
Junkclass jclass;

@Test
    public void junk() {
        String x = "ab,cd";

        PowerMockito.mockStatic(System.class);

        // establish …
Run Code Online (Sandbox Code Playgroud)

powermockito

6
推荐指数
1
解决办法
1万
查看次数

标签 统计

powermockito ×1