2

Kotlin で記述された Spring Boot 2.0.0.M2(WebFlux を使用) アプリケーションがあります。

定型的な構成を避けるために、テストケースの「注釈」を定義/宣言することに慣れています。何かのようなもの:

import java.lang.annotation.ElementType
import java.lang.annotation.Inherited
import java.lang.annotation.Retention
import java.lang.annotation.RetentionPolicy
import java.lang.annotation.Target
...

@Inherited
@Target(ElementType.TYPE)
@AutoConfigureWebTestClient // TODO: FTW this really does?!
@Retention(RetentionPolicy.RUNTIME)
//@kotlin.annotation.Target(AnnotationTarget.TYPE)
//@kotlin.annotation.Retention(AnnotationRetention.RUNTIME)
@ActiveProfiles(profiles = arrayOf("default", "test"))
@ContextConfiguration(classes = arrayOf(Application::class))
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
annotation class SpringWebFluxTest

...その後、私のテストでは次のように使用します。

@SpringWebFluxTest
@RunWith(SpringRunner::class)
class PersonWorkflowTest {
  private lateinit var client: WebTestClient
  ...

問題は、Kotlin が提供する注釈を使用して同じことを達成できないことです。

@kotlin.annotation.Target(AnnotationTarget.TYPE)
@kotlin.annotation.Retention(AnnotationRetention.RUNTIME)

私はthis annotation is not applicable to target 'class'内側を取得していPersonWorkflowTestます。私が Java のものを使用する場合、すべて問題ありませんが、一方で、これらの警告が表示されます。これは、私が実際に取り除こうとしているものです:)

...
:compileTestKotlin
w: /home/gorre/Workshop/kotlin-spring-boot-reactive/src/test/kotlin/io/shido/annotations/SpringWebFluxTest.kt: (18, 1): This annotation is deprecated in Kotlin. Use '@kotlin.annotation.Target' instead
w: /home/gorre/Workshop/kotlin-spring-boot-reactive/src/test/kotlin/io/shido/annotations/SpringWebFluxTest.kt: (20, 1): This annotation is deprecated in Kotlin. Use '@kotlin.annotation.Retention' instead

Spring Boot での Kotlin Annotation エラー

4

1 に答える 1