我正在尝试运行这样的单元测试:
@org.junit.jupiter.api.Test
void junit5codeCoverage() {
final int result = new Foo().junit5();
Assert.assertEquals(Looper.getMainLooper().getThread(), Thread.currentThread());
assertEquals(-1, result);
}
这是一个带有 Android 依赖项(即)和 Robolectric的Junit5测试。Looper.getMainLooper()
我正在使用 mannodermaus 的junit5 android 插件,它允许在 Android 设置中运行 junit5。但这不是开箱即用的,因为它不会加载 robolectric。所以我尝试了 alixwar 的分支来处理 robolectric 和 junit5 测试覆盖率,但仍然不会使用 Android 类。
我还开始研究如何在 junit5 上运行 robolectric 测试,这需要了解其RobolectricTestRunner
工作原理以及如何将代码移植到 JUnit5 平台。我对新的 junit5 平台了解甚少,但我发现我可以在org.junit.platform.runner.JUnitPlatform
runner 之上构建,以遵循 test runner 概念,这是junit-platform-runner
包的一部分。但这与原来的 Junit4 相距甚远,SandBoxTestRunner
以至于我无法完成移植。
那么实现 robolectric junit5 支持的最可行路径是什么,或者我是否缺少任何(明显的)概念?