콘텐츠로 이동

2023 06 09

2023-06-09

Play Testing

[Specs2]

  • 스칼라에서 BDD 기반의 테스팅을 지원하는 라이브러리
    • BDD: 행위 주도 개발
    • BDD 테스팅: 시나리오 기반 테스트 케이스
      • Given/When/Then
  • 특징
    1. Specification - suite of test 정의
    2. Matchers - 예상된 행위를 정의 - assertions
    3. Fragments - Single Test Case를 지칭
    4. Given/When/Then
    5. Tags - 개별 테스트에 tag 붙일 수 있음
    6. Before/After - Before, After 속성으로 setup/teardown 구동 가능
    7. Mocks/Stubs - Mockito, ScalaMock 등과 호환 좋음
    8. Reports and Output
  • 예시
    import org.specs2.mutable.Specification
    
    class MySpec extends Specification {
        "My code" should {
            "perform some operation" in {
                // Given
                val x = 5
                val y = 7
    
                // When
                val result = x + y
    
                // Then
                result must beEqualTo(12)
            }
        }
    }
    

[ArgumentsShortcuts]

  • sequential
    • 기본적으로 Specs2는 병렬적으로 멀티코어로 테스트를 돌려 (그래야 빠르니까)
    • 하지만 순차적으로 테스트 돌려야 할 때도 있는데...
    • 그떄 sequential을 쓰시면 됩니다~