assertk icon indicating copy to clipboard operation
assertk copied to clipboard

Iterable assertions always fail

Open shaposhnyk-maxym opened this issue 1 year ago • 1 comments

I'm encountering an issue with iterable assertions in AssertK version com.willowtreeapps.assertk:assertk-jvm:0.28.0.

The problem arises when I try to assert that two lists contain the same elements. The assertion fails, and the error message suggests that one of the lists is being treated as a two-dimensional array. Here's a minimal example that reproduces the issue:

        val firstList = listOf(1, 2)
        val secondList = listOf(2, 1)
        assertThat(firstList).containsExactlyInAnyOrder(secondList)
org.opentest4j.AssertionFailedError: expected to contain exactly in any order:<[[2, 1]]> but was:<[1, 2]>
 elements not found:<[[2, 1]]>
 extra elements found:<[1, 2]>

shaposhnyk-maxym avatar May 10 '24 13:05 shaposhnyk-maxym

containsExactlyInAnyOrder takes a vararg so the correct way would be:

assertThat(firstList).containsExactlyInAnyOrder(1, 2)

See https://github.com/willowtreeapps/assertk/issues/428#issuecomment-1297721662

evant avatar May 10 '24 18:05 evant