我在仪器测试中使用@Mock注释时遇到了麻烦.
这是我的gradle依赖项:
androidTestCompile 'org.mockito:mockito-core:1.10.19'
androidTestCompile 'com.google.dexmaker:dexmaker:1.2'
androidTestCompile 'com.google.dexmaker:dexmaker-mockito:1.2'
Run Code Online (Sandbox Code Playgroud)
这是一段代码示例:
@Mock View mockView
@Before
public void setup() {
MockitoAnnotation.initMocks(this);
...
}
Run Code Online (Sandbox Code Playgroud)
这与崩溃
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Class java.lang.Object.getClass()' on a null object reference
at com.google.dexmaker.mockito.DexmakerMockMaker.getInvocationHandlerAdapter(DexmakerMockMaker.java:80)
at com.google.dexmaker.mockito.DexmakerMockMaker.getHandler(DexmakerMockMaker.java:75)
...
Run Code Online (Sandbox Code Playgroud)
但是,这有效
View mockView
@Before
public void setup() {
mockView = Mockito.mock(View.class);
...
}
Run Code Online (Sandbox Code Playgroud)
任何人都有任何想法在这里发生了什么?
这是 dexmaker 中的一个错误。我已经提交了一个拉取请求来修复: https ://github.com/crittercism/dexmaker/pull/24
请注意,您可以通过避免测试类中的成员变量为空来解决这个问题。
| 归档时间: |
|
| 查看次数: |
1620 次 |
| 最近记录: |