2017-08-16 154 views
4

我正在將一些測試從Java轉換爲Kotlin。對於Java測試,我使用AssertJ庫,它非常強大並且擁有豐富的斷言。我的問題是,對於Kotlin測試,我不能使用AssertJ和 Kotlin JUnit(org.jetbrains.kotlin:kotlin-test-junit)具有非常有限的一組斷言。是否有與AssertJ庫等價的Kotlin?

是否有Kotlin等同於AssertJ或更好的斷言方式?

我發現Kluent library但我仍然不確定這是否是最好的庫。

+2

爲什麼你不能使用assertj? – yole

+0

請舉例說明它如何不適用於您的案例,以及/或者您不知道如何在Kotlin中執行相應操作的情況 – Les

回答

4

沒有官方等效的,但是基本AssertJ仍然在許多情況下使用,看起來相當精緻:

assertThat(info) 
    .containsKey("foo") 


assertThatThrownBy { session.restTemplate.postForLocation("foo", {}) } 
    .isExactlyInstanceOf(HttpClientErrorException::class.java) 

如果你想專門的包裝,這個早期階段的項目正在努力實現這一點: https://github.com/wuan/assertj-core-kotlin

+0

我檢查了此庫,但它處於非常早期的階段。 –

+0

@MarioKutlev這是我們得到的最好的 –

+1

@MarioKutlev我在答案中增加了一些簡單的示例 - 另外,如果您只是將示例添加到問題中(或創建一個新示例,因爲這個示例是關於庫的) –

相關問題