0

i use assertj. among others it has functions assertThat(int) and assertThat(Object). i would like to add my own function

fun <T> assertThat(flux: Flux<T>) = assertThat(flux.toStream())

but then it seems like i can't easily use it. when i declare the function outside of testing class MyTest, function call in tests binds to assertThat(Object) instead of assertThat(Flux):

import org.assertj.core.api.Assertions.assertThat

//<----------- if declared here, doesn't work

class MyTest {

   //<----------- if declared here, all is ok

  @Test fun test() {
     assertThat(Flux.just(1)).containsExactly(1)
  }
}

what should i do to be able to use my function?

piotrek
  • 13,982
  • 13
  • 79
  • 165

1 Answers1

1

You can define it in an extra file and import it explicitely. I think it even helps to add the import when it's defined in your file, but IDE shows this import as unused.

Suggestion would be: define extension in your/package/testutils.kt and import it then:

import your.package.assertThat

s1m0nw1
  • 76,759
  • 17
  • 167
  • 196