Stefan Lobbenmeier
11/16/2022, 5:09 PMimport assertk.all
import assertk.assertions.isEqualTo
import assertk.assertions.prop
import org.junit.jupiter.api.Test
class Test {
data class Data(val id: Int)
@Test
internal fun test() {
// AssertJ
org.assertj.core.api.Assertions.assertThat(Data(1)).returns(1, Data::id)
// AssertK
assertk.assertThat(Data(1)).all {
prop(Data::id).isEqualTo(1)
}
// kotest-assertions?
}
}
Emil Kantis
11/16/2022, 5:24 PMassertSoftly(Data(1)) { id shouldBe 1 }
?Stefan Lobbenmeier
11/16/2022, 8:13 PMStefan Lobbenmeier
11/16/2022, 8:14 PMimport io.kotest.assertions.assertSoftly
import io.kotest.matchers.shouldBe
import org.junit.jupiter.api.Test
class Test {
data class Data(val id: Int)
@Test
internal fun test() {
assertSoftly { Data(1).id shouldBe 2 }
}
}
Produces:
expected:<2> but was:<1>
Expected :2
Actual :1
I am looking for a message that includes what was tested like
Data.id was 1, should be 2Emil Kantis
11/16/2022, 8:33 PMData(1) shouldBeEqualToComparingFields Data(2)
Results in:
java.lang.AssertionError: Expected Data(id=1) to equal Data(id=2)
Using fields: id
Value differ at:
1) id:
expected:<2> but was:<1>
Emil Kantis
11/16/2022, 8:34 PMData(1).shouldBeEqualToUsingFields(Data(2), Data::id) ->
Data(id=1) should be equal to Data(id=2) using fields [id]; Failed for [id: 1 != 2]
java.lang.AssertionError: Data(id=1) should be equal to Data(id=2) using fields [id]; Failed for [id: 1 != 2]
Stefan Lobbenmeier
11/17/2022, 8:34 AM