You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
아래 build.gradle.kts 와 FixtureMonkeyTest.kt 테스트를 수행하면,
테스트 시작과 동시에 중지된 것 처럼 딜레이가 생기는데, 무한루프에 빠진 듯 정지된 상태로 테스트 진행이 안됩니다.
또한 계속 기다리면 Heap 메모리가 가득 차서 VM 이 강제종료됩니다.
그러나 아래 MemberCreateRequest 모델 의 @field:Pattern(...) 을 주석처리하면 테스트가 정상동작 합니다.
아래는 재현이 가능한 테스트 코드입니다.
Your environment
Java Temurin 17.0.7 / Kotlin 1.8.22
build.gradle.kts
plugins {
id("org.springframework.boot") version "3.1.4"
id("io.spring.dependency-management") version "1.1.3"
id("org.jlleitschuh.gradle.ktlint") version "11.5.0"
id("io.gitlab.arturbosch.detekt") version "1.23.1"
val kotlinVersion = "1.8.22"
kotlin("jvm") version kotlinVersion
kotlin("kapt") version kotlinVersion
kotlin("plugin.spring") version kotlinVersion
kotlin("plugin.jpa") version kotlinVersion
}
dependencies {
implementation("org.jetbrains.kotlin:kotlin-reflect")
implementation("org.springframework.boot:spring-boot-starter-web")
implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
implementation("org.springframework.boot:spring-boot-starter-validation")
implementation("org.springframework.boot:spring-boot-starter-data-jpa")
runtimeOnly("org.mariadb.jdbc:mariadb-java-client")
testImplementation("org.springframework.boot:spring-boot-starter-test") {
exclude(module = "junit-vintage-engine")
exclude(module = "mockito-core")
}
testImplementation("com.ninja-squad:springmockk:4.0.2")
testImplementation("com.navercorp.fixturemonkey:fixture-monkey-starter-kotlin:0.6.8")
developmentOnly("org.springframework.boot:spring-boot-devtools")
implementation("io.github.microutils:kotlin-logging-jvm:3.0.5")
implementation("com.github.f4b6a3:ulid-creator:5.2.0") // 시계열 UUID 생성모듈
}
Steps to reproduce
FixtureMonkeyTest.kt
import com.fasterxml.jackson.annotation.JsonProperty
import com.navercorp.fixturemonkey.FixtureMonkey
import com.navercorp.fixturemonkey.jakarta.validation.plugin.JakartaValidationPlugin
import com.navercorp.fixturemonkey.kotlin.KotlinPlugin
import com.navercorp.fixturemonkey.kotlin.giveMeOne
import jakarta.validation.constraints.Email
import jakarta.validation.constraints.NotBlank
import jakarta.validation.constraints.Pattern
import org.junit.jupiter.api.Test
class FixtureMonkeyTest {
val sut = FixtureMonkey.builder()
.plugin(KotlinPlugin())
.plugin(JakartaValidationPlugin())
.build()
@Test
fun `SUT 는 필드에 선언된 @Pattern 제약 처리에 문제가 없어야 합니다`() {
val reqest: MemberCreateRequest = sut.giveMeOne()
}
data class MemberCreateRequest(
@param:JsonProperty("email")
@field:NotBlank
@field:Email
val email: String,
@param:JsonProperty("password")
@field:NotBlank
@field:Pattern(
regexp = "^(?=.*[a-zA-Z])(?=.*[0-9])(?=.*[!@#$%^&*])[a-zA-Z0-9!@#$%^&*]{8,20}$",
message = "영문, 숫자, 특수문자를 포함한 8~20자리로 입력해주세요",
)
val password: String,
)
}
Expected behaviour
테스트 수행에 문제가 없습니다.
Actual behaviour
순환 참조라도 걸린 듯, 테스트 진행이 안됩니다.
The text was updated successfully, but these errors were encountered:
m-fire
changed the title
Jakarta @Pattern 이 필드에 선언된 Kotlin Data Class 모델 테스트 시, JakartaValidationPlugin 설정 된 FixtureMonkey 는 무한루프로 테스트 수행을 막습니다.
JakartaValidationPlugin이 설정 된 FixtureMonkey 는 Jakarta @Pattern 이 필드에 선언된 Kotlin Data Class 모델 테스트 시, 무한루프로 테스트 수행을 막습니다.
Oct 1, 2023
m-fire
changed the title
JakartaValidationPlugin이 설정 된 FixtureMonkey 는 Jakarta @Pattern 이 필드에 선언된 Kotlin Data Class 모델 테스트 시, 무한루프로 테스트 수행을 막습니다.
JakartaValidationPlugin이 설정 된 FixtureMonkey 는, Jakarta @Pattern 이 필드에 선언된 Kotlin Data Class 모델 테스트 시, 무한루프로 테스트 수행을 막습니다.
Oct 1, 2023
m-fire
changed the title
JakartaValidationPlugin이 설정 된 FixtureMonkey 는, Jakarta @Pattern 이 필드에 선언된 Kotlin Data Class 모델 테스트 시, 무한루프로 테스트 수행을 막습니다.
JakartaValidationPlugin이 설정 된 FixtureMonkey 는, 필드에 Jakarta @Pattern 이 선언된 Kotlin Data Class 모델 테스트 시, 무한루프에 빠져 테스트 수행을 막습니다.
Oct 1, 2023
Describe the bug
아래 build.gradle.kts 와 FixtureMonkeyTest.kt 테스트를 수행하면,
테스트 시작과 동시에 중지된 것 처럼 딜레이가 생기는데, 무한루프에 빠진 듯 정지된 상태로 테스트 진행이 안됩니다.
또한 계속 기다리면 Heap 메모리가 가득 차서 VM 이 강제종료됩니다.
그러나 아래 MemberCreateRequest 모델 의 @field:Pattern(...) 을 주석처리하면 테스트가 정상동작 합니다.
아래는 재현이 가능한 테스트 코드입니다.
Your environment
build.gradle.kts
Steps to reproduce
FixtureMonkeyTest.kt
Expected behaviour
Actual behaviour
순환 참조라도 걸린 듯, 테스트 진행이 안됩니다.
The text was updated successfully, but these errors were encountered: