kotlin: как перегрузить импортированную функцию

Я использую assertj. среди прочего у него есть функции assertThat(int) а также assertThat(Object), я хотел бы добавить свою собственную функцию

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

но тогда кажется, что я не могу легко использовать это. когда я объявляю функцию вне класса тестирования MyTestвызов функции в тестах привязывается к assertThat(Object) вместо 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)
  }
}

что я должен сделать, чтобы иметь возможность использовать мою функцию?

1 ответ

Решение

Вы можете определить его в дополнительном файле и явно импортировать его. Я думаю, что это даже помогает добавить импорт, когда он определен в вашем файле, но IDE показывает этот импорт как неиспользуемый.

Предложение будет: определить расширение в your/package/testutils.kt и импортировать его потом:

import your.package.assertThat

Другие вопросы по тегам