TDD 002: 용어 정리

Raymond Yoo·2022년 1월 15일
0

TDD

목록 보기
2/6

테스트 슈트, 테스트 케이스

가장 작은 테스트의 단위는 테스트 케이스(Test Case) 이고
여러 개의 테스트 케이스가 모여서 하나의 테스트 슈트(Test Suite)를 이룬다.

참조 링크: https://www.testim.io/blog/test-suites-test-cases-hierarchy-explained/

위에서 사용하는 mocha 라이브러리에서는 it 가 하나의 테스트 케이스이다.

  it("I'm a test case", function () {
    ...
  });

그리고 describe 가 하나의 테스트 슈트이다.

describe("I'm a test suite", function () {
  it("test case 1", function () {
  });
  it("test case 2", function () {
  });
  it("test case 3", function () {
  });
});

그리고 테스트 슈트를 중첩해서 사용하는 것도 가능하다.

describe("test suite for all the test suites", function () {
  describe("test suite 1", function () {
    it("test case 1", function () {
    });
    it("test case 2", function () {
    });
    it("test case 3", function () {
    });
  });
  describe("test suite 2", function () {
    it("test case 1", function () {
    });
    it("test case 2", function () {
    });
    it("test case 3", function () {
    });
  });
});

테스트 코드를 작성할 때
기본적으로는 테스트 케이스마다 '하나의 동작' 또는 '하나의 기능'만 테스트한다는 원칙을 지키는 것이 좋다.

  1. 각각의 테스트 케이스를 최대한 단순하게 유지할 수 있다.
  2. 테스트 케이스 안에 여러 개의 assertion 이 있을 때 하나라도 실패하면
    해당 테스트 케이스의 나머지 assertion 은 실행하지 못한다.
  3. (예외) 테스트 케이스에서 객체가 예상하는 상태에 있는지 확인하기 위해
    여러 개의 property 에 대한 assertion 을 실행하는 것은 괜찮다.
profile
세상에 도움이 되고, 동료에게 도움이 되고, 나에게 도움이 되는 코드를 만들고 싶습니다.

0개의 댓글