Gsonκ³Ό Jackson λΌμ΄λΈλ¬λ¦¬λ₯Ό ν΅ν Json κ°μ²΄ νΈλ€λ§.
app λͺ¨λμ ExampleTest.ktsμ, resource ν΄λ λ΄ weather.json νμΌκ²½λ‘ μ§μ .
@DisplayName("[UnitTest] λ μ¨ μμ λ¨μ ν
μ€νΈ")
class ExampleUnitTest {
@Test
@DisplayName("Json νμΌμ λ°μ΄ν°λ₯Ό μΆκ°ν μ μλ€.")
fun trafficAdditionalTest() {
val filePath = "PATH"
val fileContent = File(filePath).readText()
val result = add(fileContent)
assertThat(result).contains("traffic")
}
}
λΉλ ν μ€ν.
# λΉλ
./gradlew :app:build
Gson
λλ Jackson
λΌμ΄λΈλ¬λ¦¬λ₯Ό μ¬μ©ν΄ Json λ°μ΄ν°λ₯Ό λ°°μ΄λ‘ λ§λ ν, λ°μ΄ν°λ₯Ό μΆκ°/μμ ν μ μλ€.
@Test
@DisplayName("Json κ°μ²΄μ λ°°μ΄ λ°μ΄ν°λ₯Ό μΆκ°ν μ μλ€.")
fun jsonArrayAdditionalTest() {
val jsonStr = "{\"name\":\"Jun\", \"age\":7}"
val jsonObj = createObj(jsonStr)
val jsonArray = JsonArray().apply {
add("item1")
add("item2")
}
jsonObj.add("items", jsonArray)
val result = gson.toJson(jsonObj)
val expected = "{\"name\":\"Jun\",\"age\":7,\"items\":[\"item1\",\"item2\"]}"
assertEquals(expected, result)
}
@Test
@DisplayName("Json κ°μ²΄μμ λ°μ΄ν°λ₯Ό μμ ν μ μλ€.")
fun jsonDataRemoveTest() {
val jsonStr = "{\"name\":\"Jun\", \"age\":7}"
val jsonObj = createObj(jsonStr)
val jsonArray = JsonArray().apply {
add("item1")
add("item2")
}
jsonObj.add("items", jsonArray)
jsonObj.remove("items")
val result = Gson().toJson(jsonObj)
val expected = "{\"name\":\"Jun\",\"age\":7}"
assertEquals(expected, result)
}
μ΄λ₯Ό ν΅ν΄ λΉλ μ, λΆκ° μμ μ΄ κ°λ₯νλ©°, buildSrcμ ν΅ν΄ μ½λλ₯Ό μ¬νμ©ν μ μλ€.
βββ buildSrc
β βββ build
β β βββ classes
β β β βββ java
β β β βββ main
β β β βββ ScriptUtils.class
β β βββ generated
β β β βββ sources
β β β βββ annotationProcessor
β β β β βββ java
β β β βββ headers
β β β βββ java
β β βββ libs
β β β βββ buildSrc.jar
β β βββ tmp
β β βββ compileJava
β β β βββ previous-compilation-data.bin
β β βββ jar
β β βββ MANIFEST.MF
β βββ build.gradle.kts
β βββ src
β βββ main
β βββ java
β βββ ScriptUtils.java # λΉλ μ€ν¬λ¦½νΈμμ νμ© κ°λ₯
......