为什么Gradle能够模拟期末课程



Mockito文档说,你不能模拟最终的类,但通过Gradle运行这样的测试是有效的。具体来说,我在一个Android项目中进行了一个单元测试,它包含以下内容:

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

ViewTreeObserver是最后一个类。

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

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

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

各种库版本如下:

  • gradle-2.2.1(Studio和命令行使用的包装器)
  • mockito-core-1.9.5
  • 机器人电气-2.4
  • android-20(Eclipse中的单元测试类路径配置)

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

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

没有发现这一点,感觉有点愚蠢。为我辩护,我没有编写那个特定的测试。。。

相关内容

  • 没有找到相关文章

最新更新