Android Mockito anyInt不工作
我是Mockito新手,无法使用基本的Android Mockito anyInt不工作,android,mockito,Android,Mockito,我是Mockito新手,无法使用基本的anyInt()方法。我错过了什么?这是我的测试 public class SpanPainterTest { @Test public void simpleTest () { SpannableString mockSpanString = mock(SpannableString.class); SpanPainter painter = new SpanPainter(); painter.applyColor(mock
anyInt()
方法。我错过了什么?这是我的测试
public class SpanPainterTest {
@Test
public void simpleTest () {
SpannableString mockSpanString = mock(SpannableString.class);
SpanPainter painter = new SpanPainter();
painter.applyColor(mockSpanString);
verify(mockSpanString).charAt(anyInt());
verify(mockSpanString).equals(anyInt());
}
}
这是绘画课
public class SpanPainter {
public SpannableString applyColor(SpannableString span) {
span.charAt(7);
span.equals(0);
return span;
}
}
当我注释掉“
verify…charAt(anyInt())
'行,然后测试通过,因此anyInt()
适用于equals()
方法。charAt方法是final
并且final方法不能被模拟
看看()来模拟final方法。您知道charAt函数的作用吗?它在给定位置返回一个值。你想测试什么?我想测试applyColor()方法是否使用任何整数调用charAt()方法。我真正的测试实际上更复杂,但在这一点上,我只想知道是否有任何整数可能是问题代码>不会以任何方式修改span对象,因此无法对此进行测试。除非某个对象更改了状态,并且您测试了状态更改,否则您无法知道该对象是否调用了某个方法。
charAt
方法是final
,并且final方法无法模拟。好的,似乎verify对final方法不起作用。如果把这个答案写成“答案”,我会接受的。谢谢