为什么Gradle能够模拟最终课程?

时间:2015-04-08 17:19:36

标签: android eclipse unit-testing gradle mockito

Mockito文档说你不能嘲笑最后一堂课,而是通过Gradle工作进行这样的测试。具体来说,我在Android项目中进行了单元测试,其中包含以下内容:

@Mock
private ViewTreeObserver mockTreeObserver;
...
@Before
public void setUp() {
    MockitoAnnotations.initMocks(this);
    ...
}

ViewTreeObserver是最后一堂课。

我需要在Eclipse和Android Studio中支持遗留开发环境。使用包装器的Studio和Gradle命令行都通过。 Eclipse失败并带有

org.mockito.exceptions.base.MockitoException: 
Cannot mock/spy class android.view.ViewTreeObserver

以及为什么?'如果可能的话,我真的需要知道如何让Eclipse通过(不重写测试)。

各种库版本如下:

  • gradle-2.2.1(Studio和命令行使用的包装器)
  • 的Mockito核-1.9.5
  • robolectric-2.4
  • android-20(Eclipse中的单元测试类路径配置)

1 个答案:

答案 0 :(得分:1)

根据Rene的建议,我在尝试创建示例版本时发现了这个问题。有问题的测试缺少@RunWith(RobolectricGradleTestRunner.class)注释。

RobolectricGradleTestRunner扩展RobolectricTestRunner并解析各种各样的部分,包括在所有Intellij,eclipse和Gradle命令行中运行测试的能力。

因为没有发现那种感觉有点愚蠢。在我的辩护中,我没有创作那个特定的测试...