作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我尝试使用字符串输入模拟静态方法时,当我给出特定字符串时,模拟 stub 就会被执行,但是当我使用anyString()时,它不会按预期工作。
public class Foo {
public static String staticInput(String s) {
System.out.println("staticInput called");
return "static " + s;
}
}
@RunWith(PowerMockRunner.class)
@PrepareForTest({Foo.class})
public class TestMockito {
@Test
public void test1() throws Exception {
PowerMockito.spy(Foo.class);
PowerMockito.doReturn("dummyStaticStub").when(Foo.class, "staticInput", "1");
System.out.println(Foo.staticInput("1"));
}
@Test
public void test2() throws Exception {
PowerMockito.spy(Foo.class);
PowerMockito.doReturn("dummyStaticIn").when(Foo.class, "staticInput", anyString());
System.out.println(Foo.staticInput("1"));
}
}
测试1打印:
dummyStaticStub
测试2打印:
staticInput called
static 1
最佳答案
您可以稍微改变一下方法并使用 PowerMockito.mockStatic
代替
@RunWith(PowerMockRunner.class)
@PrepareForTest({Foo.class})
public class TestMockito {
@Test
public void test1() throws Exception {
PowerMockito.mockStatic(Foo.class);
Mockito.when(Foo.staticInput("1")).thenReturn("dummyStaticStub");
System.out.println(Foo.staticInput("1"));
}
@Test
public void test2() throws Exception {
PowerMockito.mockStatic(Foo.class);
PowerMockito.when(Foo.staticInput(anyString())).thenReturn("dummyStaticIn");
System.out.println(Foo.staticInput("1"));
}
}
关于java - Powermockito 模拟静态方法匹配器不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56208818/
我是一名优秀的程序员,十分优秀!