【发布时间】:2015-04-08 17:19:35
【问题描述】:
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-core-1.9.5
- robolectric-2.4
- android-20(Eclipse 中的单元测试类路径配置)
【问题讨论】:
-
可能是由于 dex 编译器的转换。你会想要使用PowerMock。
-
你能创建一个可复制的小样本构建并在某个地方(例如 github)共享它,以便我可以查看它吗?
标签: android eclipse unit-testing gradle mockito