본문 바로가기
공부/Kotlin

Kotest의 테스트스타일 10가지

by JERO__ 2022. 7. 26.

1. Fun Spec

class MyTests : FunSpec({
    test("String length should return the length of the string") {
        "sammy".length shouldBe 5
        "".length shouldBe 0
    }
})

2. Describe Spec

class MyTests : DescribeSpec({
	describe("A") {
    		context("B") {
        		it("C") {
            			// test here
         	     	}
    		}
  	}
})

3. Should Spec

class MyTests : ShouldSpec({
    should("return the length of the string") {
        "sammy".length shouldBe 5
        "".length shouldBe 0
    }
})

4. String Spec

class MyTests : StringSpec({
    "strings.length should return size of string" {
        "hello".length shouldBe 5
    }
})

5. Behavior Spec : BDD 스타일

class MyTests : BehaviorSpec({
    given("a broomstick") {
        `when`("I sit on it") {
            then("I should be able to fly") {
                // test code
            }
        }
        `when`("I throw it away") {
            then("it should come back") {
                // test code
            }
        }
    }
})

6. Free Spec -

String과 비슷하지만 leaf 테스트(마지막테스트)인경우 문자열 끝에 - 추가한다.

7. Word Spec

should + 문자열 뒤 테스트 중첩

class MyTests : WordSpec({
    "String.length" should {
        "return the length of the string" {
            "sammy".length shouldBe 5
            "".length shouldBe 0
        }
    }
})

8. Feature Spec

class MyTests : FeatureSpec({
    feature("the can of coke") {
        scenario("should be fizzy when I shake it") {
            // test here
        }
        scenario("and should be tasty") {
            // test here
        }
    }
})

9. Expect Spec

class MyTests : ExpectSpec({
    context("a calculator") {
        expect("simple addition") {
            // test here
        }
        expect("integer overflow") {
            // test here
        }
    }
})

10. Annotation Spec

class AnnotationSpecExample : AnnotationSpec() {

    @BeforeEach
    fun beforeTest() {
        println("Before each test")
    }

    @Test
    fun test1() {
        1 shouldBe 1
    }

    @Test
    fun test2() {
        3 shouldBe 3
    }
}

'공부 > Kotlin' 카테고리의 다른 글

코틀린 기본내용을 모두 정리해보자  (2) 2022.08.27
왜 Kotest를 사용해야 할까?  (2) 2022.07.26
11장 DSL 만들기  (0) 2022.07.18
10장 애노테이션과 리플렉션  (0) 2022.07.18
9장 제네릭스  (0) 2022.07.02

댓글