AssertJ:类型推断失败:没有足够的信息来推断org.assertj.core.api.Assertions.fail中的参数T

时间:2019-11-15 10:54:39

标签: kotlin type-inference junit5 assertj

在一个纯Kotlin项目中,我正在使用JUnit Jupiter 5.5.2和AssertJ 3.10.0。以下测试执行成功:

@Test
fun `Validates something`() = runBlocking {
    try {
        // Assert something
    } catch (t: Throwable) {
        fail("Should not throw $t")
    }
}

一旦我更新到AssertJ 3.11.1,测试构建就会失败,并显示以下消息:

  

类型推断失败:没有足够的信息来有趣地推断参数T(p0:字符串!):T!
  请明确指定。

如果我使用fail<Nothing>("Should not throw $t"),然后使用No test were found

我试图弄清楚发生了什么-尽管没有成功。

相关

1 个答案:

答案 0 :(得分:3)

似乎问题在于runBlocking表达式主体。如果将其转换为块体,则无论您在fail方法中使用哪种类型(以Nothing为例,可以为Any,{ {1}}或其他任何类型):

Any?