0

如何编写以下断言:

org.junit.Assert.assertTrue(result.any { it.name == "Foo" })

与谷歌真相assertThat

com.google.common.truth.Truth.assertThat(result...
4

1 回答 1

2

如果我不熟悉 Google Truth(因此我不知道是否有一种惯用的方式来编写它),我会这样写这个断言:

Truth.assertThat(result.map { it.name }).contains("foo")

或者,您可以保留原始版本:

Truth.assertThat(result.any { it.name == "foo" }).isTrue()

玩一点,你甚至可以这样做:

Truth.assertThat(result)
        .comparingElementsUsing(Correspondence.transforming<Foo, String>({ foo -> foo?.name }, "has the same name as"))
        .contains("foo")

但是,后者看起来不太可读,所以我会坚持使用第一个。

于 2021-06-01T15:17:52.807 回答