[javascript] Jasmine과 연동하여 자바스크립트 코드를 지속적으로 테스트하는 방법

지속적인 테스트는 소프트웨어 개발에서 매우 중요한 단계입니다. 이를 위해 Jasmine을 사용하여 자바스크립트 코드를 테스트할 수 있습니다. Jasmine은 BDD(Behavior-Driven Development) 스타일로 코드를 작성하고 테스트하는 데 도움을 주는 자바스크립트 테스팅 프레임워크입니다. Jasmine은 다양한 테스트 스위트와 어설션(assertion) 기능을 제공하여 코드 테스트를 쉽게 할 수 있습니다.

Jasmine 설치

먼저 Jasmine을 설치해야 합니다. Jasmine은 Node.js 패키지로 제공되며, npm을 통해 설치할 수 있습니다. 아래의 명령어를 사용하여 Jasmine을 설치합니다.

npm install --save-dev jasmine

Jasmine으로 테스트 작성하기

Jasmine으로 테스트를 작성하기 위해 먼저 spec 디렉토리를 생성합니다. 이 디렉토리에는 테스트 파일이 위치할 것입니다. 그리고 테스트 파일을 생성하고 원하는 테스트를 작성합니다.

// calculator.spec.js

describe("Calculator", function() {
  it("should return 4 when adding 2 and 2", function() {
    expect(add(2, 2)).toBe(4);
  });
});

위의 예제에서는 “Calculator”라는 테스트 스위트를 생성하고, “should return 4 when adding 2 and 2”라는 테스트 케이스를 작성했습니다. add 함수가 2와 2를 더한 결과가 4인지를 검증합니다.

테스트 파일을 작성한 후에는 실제 코드를 작성해야 합니다. 예제에서는 add 함수를 사용하므로, add 함수를 구현해야 합니다.

// calculator.js

function add(a, b) {
  return a + b;
}

위의 예제에서는 단순히 두 수를 더하는 add 함수를 구현했습니다.

테스트 실행하기

Jasmine으로 작성한 테스트를 실행하기 위해 npm test 명령어를 사용합니다. package.json 파일에 "scripts" 부분에 "test" 명령어를 추가하면 편리합니다.

// package.json

{
  "scripts": {
    "test": "jasmine"
  }
}

위와 같이 설정한 후, 터미널에서 npm test 명령어를 실행하면 Jasmine으로 작성한 테스트가 실행됩니다.

지속적인 테스트

지속적인 테스트를 위해서는 테스트 코드를 변경할 때마다 테스트를 실행할 수 있어야 합니다. 이를 위해 CI/CD 도구를 사용하면 됩니다. 대표적인 CI/CD 도구로는 Jenkins, CircleCI, Travis CI 등이 있습니다. 이 도구들은 코드 저장소에 변경 사항이 발생하면 자동으로 테스트를 실행하여 결과를 보고해 줍니다.

위의 예제에서는 Jenkins를 사용하여 지속적인 테스트를 설정하는 방법을 알아보겠습니다.

  1. Jenkins를 설치하고 실행합니다.
  2. Jenkins 웹 인터페이스에 접속하여 새로운 Job을 생성합니다.
  3. Job 구성에서 Build Triggers 부분에서 “GitHub hook trigger for GITScm polling”을 선택합니다.
  4. Build 부분에서 “Execute shell”을 선택하고 아래 내용을 입력합니다.
npm install # 의존성 설치
npm test # 테스트 실행
  1. 저장 후 Job을 실행하고 코드 저장소에 변경 사항을 푸시하면 Jenkins에서 자동으로 테스트를 실행합니다.

결론

Jasmine을 사용하여 자바스크립트 코드를 지속적으로 테스트하는 방법을 알아보았습니다. Jasmine으로 테스트를 작성하고 실행할 수 있으며, CI/CD 도구를 사용하여 테스트를 지속적으로 실행할 수도 있습니다. 테스트를 통해 소프트웨어 개발의 품질을 높이고 안정성을 보장할 수 있습니다.

참고 자료: