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