Closed woowahan-pjs closed 2 years ago
https://github.com/woowacourse/service-apply/issues/533#issuecomment-1175040962 에 이어 작성합니다.
assertThat(true).isTrue()
vs assertThat(true).isTrue
여러 사람이 함께 작업하는 코드에는 자유로운 표현방식보다는 약간의 제약을 가하는 표현방식을 사용해야 한다고 생각한다.
@Transactional
@SpringBootTest
class LanguageServiceTest(
private val languageService: LanguageService
) : StringSpec({
extensions(SpringExtension)
"언어를 추가한다." {
val language = languageService.create(code = "ko", name = "한국어")
assertSoftly(language) {
id shouldNotBe 0
code shouldBe "ko"
name shouldBe "한국어"
}
}
})
override fun extensions() = listOf(SpringExtension)
override fun isolationMode(): IsolationMode = IsolationMode.InstancePerLeaf
val restdocs = ManualRestDocumentation()
beforeEach {
restdocs.beforeTest(javaClass, "name")
}
afterEach {
restdocs.afterTest()
}
DurationUnit
을 사용한다.
Kotlin 1.6 is now the minimum supported version
java.lang.NoClassDefFoundError: kotlin/time/DurationUnit
at io.kotest.engine.spec.interceptor.SpecFinishedInterceptor.intercept-0E7RQCE(SpecFinishedInterceptor.kt:22)
at io.kotest.engine.spec.interceptor.SpecFinishedInterceptor$intercept$1.invokeSuspend(SpecFinishedInterceptor.kt)
...
kotlin-coroutines.version
을 1.6.0으로 지정해야 한다.extra["kotlin-coroutines.version"] = "1.6.0"
https://github.com/kotest/kotest/issues/2782
https://github.com/spring-projects/spring-boot/issues/31521
java.lang.ClassNotFoundException: kotlinx.coroutines.test.TestDispatcher
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
...
AnnotationSpec
에서 @Nested
를 사용할 수 없다.
@Nested
을 지원한다고 하였지만 https://github.com/kotest/kotest/commit/69eea2d50067c6fa309fbad568d770c5e861a439
에서 주석 처리되었다.Added support for
@Nested
in AnnotationSpec
https://github.com/kotest/kotest/issues/2367
https://github.com/kotest/kotest/issues/3103
java.lang.IllegalArgumentException: object is not an instance of declaring class
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
...
관련 이슈: #63