当mock()成功时,MockitoAnnotations.initMocks崩溃

时间:2015-08-27 23:11:14

标签: android mockito

我在仪器测试中使用@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'

以下是一段代码示例:

@Mock View mockView

@Before
public void setup() {
    MockitoAnnotation.initMocks(this);
    ...
}

这与

崩溃
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)
...

然而,这有效

View mockView

@Before
public void setup() {
    mockView = Mockito.mock(View.class);
    ...
}

任何人都有任何想法在这里发生了什么?

2 个答案:

答案 0 :(得分:3)

它是dexmaker中的一个错误。我已经提交了一个拉取请求来修复: https://github.com/crittercism/dexmaker/pull/24

请注意,您可以通过避免测试类中的空成员变量来解决此问题。

答案 1 :(得分:1)

我在那里创造了一个问题 https://github.com/mockito/mockito/issues/392

非常糟糕的修补程序:



try {
  MockitoAnnotations.initMocks(this);
} catch (NullPointerException e) {
  //waiting for fix
}