kotlin: как перегрузить импортированную функцию - PullRequest
0 голосов
/ 15 января 2019

я использую 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 Ответ

0 голосов
/ 15 января 2019

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

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

import your.package.assertThat

...