generated from pricelees/issue-pr-template
feat: 공통 통합테스트를 위한 Spec 타입별 기본 테스트 클래스 정의
This commit is contained in:
parent
b4896e243e
commit
6db81feb9b
@ -1,9 +1,73 @@
|
|||||||
package roomescape.util
|
package roomescape.util
|
||||||
|
|
||||||
import io.kotest.core.config.AbstractProjectConfig
|
import io.kotest.core.config.AbstractProjectConfig
|
||||||
|
import io.kotest.core.spec.Spec
|
||||||
|
import io.kotest.core.spec.style.BehaviorSpec
|
||||||
|
import io.kotest.core.spec.style.FunSpec
|
||||||
|
import io.kotest.core.spec.style.StringSpec
|
||||||
import io.kotest.extensions.spring.SpringExtension
|
import io.kotest.extensions.spring.SpringExtension
|
||||||
import io.kotest.extensions.spring.SpringTestExtension
|
import io.kotest.extensions.spring.SpringTestExtension
|
||||||
|
import io.restassured.RestAssured
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired
|
||||||
|
import org.springframework.boot.test.context.SpringBootTest
|
||||||
|
import org.springframework.boot.test.web.server.LocalServerPort
|
||||||
|
import roomescape.member.infrastructure.persistence.MemberRepository
|
||||||
|
import roomescape.util.CleanerMode.AFTER_EACH_TEST
|
||||||
|
|
||||||
object KotestConfig : AbstractProjectConfig() {
|
object KotestConfig : AbstractProjectConfig() {
|
||||||
override fun extensions(): List<SpringTestExtension> = listOf(SpringExtension)
|
override fun extensions(): List<SpringTestExtension> = listOf(SpringExtension)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
|
||||||
|
abstract class FunSpecSpringbootTest : FunSpec({
|
||||||
|
extension(DatabaseCleanerExtension(mode = AFTER_EACH_TEST))
|
||||||
|
}) {
|
||||||
|
@Autowired
|
||||||
|
private lateinit var memberRepository: MemberRepository
|
||||||
|
|
||||||
|
@LocalServerPort
|
||||||
|
var port: Int = 0
|
||||||
|
|
||||||
|
lateinit var loginUtil: LoginUtil
|
||||||
|
|
||||||
|
override suspend fun beforeSpec(spec: Spec) {
|
||||||
|
RestAssured.port = port
|
||||||
|
loginUtil = LoginUtil(memberRepository)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
|
||||||
|
abstract class StringSpecSpringbootTest : StringSpec({
|
||||||
|
extension(DatabaseCleanerExtension(mode = AFTER_EACH_TEST))
|
||||||
|
}) {
|
||||||
|
@Autowired
|
||||||
|
private lateinit var memberRepository: MemberRepository
|
||||||
|
|
||||||
|
@LocalServerPort
|
||||||
|
var port: Int = 0
|
||||||
|
|
||||||
|
lateinit var loginUtil: LoginUtil
|
||||||
|
|
||||||
|
override suspend fun beforeSpec(spec: Spec) {
|
||||||
|
RestAssured.port = port
|
||||||
|
loginUtil = LoginUtil(memberRepository)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
|
||||||
|
abstract class BehaviorSpecSpringbootTest : BehaviorSpec({
|
||||||
|
extension(DatabaseCleanerExtension(mode = AFTER_EACH_TEST))
|
||||||
|
}) {
|
||||||
|
@Autowired
|
||||||
|
private lateinit var memberRepository: MemberRepository
|
||||||
|
|
||||||
|
@LocalServerPort
|
||||||
|
var port: Int = 0
|
||||||
|
|
||||||
|
lateinit var loginUtil: LoginUtil
|
||||||
|
|
||||||
|
override suspend fun beforeSpec(spec: Spec) {
|
||||||
|
RestAssured.port = port
|
||||||
|
loginUtil = LoginUtil(memberRepository)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user