作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在 android studio 中编写单元测试并使用 PowerMock
测试看起来像这样
@RunWith(PowerMockRunner.class)
@PrepareOnlyThisForTest({Typeface.class})
public class ExtendedTextViewTest {
...
@Test
public void ctor_context_attributeSet_ShouldSetTypeface() throws Exception {
// Act
final LinkedList<Typeface> actualTypefaces = new LinkedList<Typeface>();
ExtendedTextView textView = spy(new ExtendedTextView(contextMock, attributeSet) {
@Override
public void setTypeface(Typeface typeface) {
actualTypefaces.add(typeface);
}
});
// Assert
MoreAsserts.assertEquals(new Typeface[]{typefaceMock}, actualTypefaces.toArray());
verify(typedArrayMock, times(1)).recycle();
}
}
当我运行测试时出现错误:
java.lang.RuntimeException: Method assertEquals in android.test.MoreAsserts not mocked. See http://g.co/androidstudio/not-mocked for details.
at android.test.MoreAsserts.assertEquals(MoreAsserts.java)
at com.loka.loka.common.ExtendedTextViewTest.ctor_context_attributeSet_ShouldSetTypeface(ExtendedTextViewTest.java:130)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at org.junit.internal.runners.TestMethod.invoke(TestMethod.java:68)
似乎 mockito 在没有我要求的情况下 mock 了 MoreAsserts ...我错过了什么?
谢谢,光荣
最佳答案
好的,搜索后我找到了答案......MoreAsserts是一个android sdk类(android.test.MoreAsserts)
当运行单元测试时,android sdk 没有加载,而是所有的类都被一个抛出异常的实现 stub ,包括 MoreAsserts..
所以我需要用 JUNit 断言替换断言:Assert.assertArrayEquals
Assert.assertArrayEquals(new Typeface[]{typefaceMock}, actualTypefaces.toArray());
希望对大家有所帮助=]
关于android - PowerMock 模拟 MoreAsserts,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35800075/
我正在 android studio 中编写单元测试并使用 PowerMock 测试看起来像这样 @RunWith(PowerMockRunner.class) @PrepareOnlyThisFor
我最近将 Google Guava 作为库添加到我的 Eclipse 项目中(我从 http://code.google.com/p/guava-libraries/ 下载了“guava-16.0.j
我是一名优秀的程序员,十分优秀!