我正在尝试运行这样的单元测试:

    @org.junit.jupiter.api.Test
    void junit5codeCoverage() {
        final int result = new Foo().junit5();

        Assert.assertEquals(Looper.getMainLooper().getThread(), Thread.currentThread());

        assertEquals(-1, result);
    }

这是具有Robolectric的Android依赖项(即Looper.getMainLooper())的 Junit5 测试。

我使用的junit5 android plugin from mannodermaus允许在Android设置中运行junit5。但这开箱即用,因为它不会加载robolectric。因此,我尝试了alixwar's branch来解决robolectric和junit5测试覆盖问题,但仍然不会使用Android类。

此外,我开始研究如何在junit5上运行自动测试,这需要了解RobolectricTestRunner的工作方式以及如何将代码移植到JUnit5平台。我对新的junit5平台了解甚少,但我发现我可以在org.junit.platform.runner.JUnitPlatform运行器的基础上构建,以遵循junit-platform-runner包中的测试运行器概念。但这与原始的Junit4 SandBoxTestRunner相距太远,以至于我无法完成该端口。

那么实现robolectric junit5支持的最可行途径是什么,或者我缺少任何(显而易见的)概念?

最佳答案

我也尝试这样做,但是在撰写本文时,Robolectric似乎根本不支持junit5。

请参阅此处的讨论:https://github.com/robolectric/robolectric/issues/2996

在该讨论中描述了一些解决方法,但是现在我只继续使用junit4。

10-08 08:51