본문 바로가기
개발

[Javascript] Jasmine을 이용한 테스트 코드 작성

by 마스터누누 2017. 5. 8.
728x90
반응형

 Jasmine을 이용한 테스트 코드 작성




테스트 주도 개발(TDD)에서 테스트 코드는 가장 중요한 요소로 손꼽힌다.

이러한 테스트코드 작성을 도와주기 위한 툴(라이브러리)은 여러개가 있는데

그 중 자바스크립트 관련 도서에서 자주 언급되는 자스민(jasmine)을 사용하는 기본적인 방법에 대해 알아보자




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<!DOCTYPE html>
<html lang="en">
 
<head>
    <title>test</title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link data-require="jasmine@*" data-semver="2.0.0" rel="stylesheet" href="http://cdn.jsdelivr.net/jasmine/2.0.0/jasmine.css"
    />
    <script data-require="jasmine@*" data-semver="2.0.0" src="http://cdn.jsdelivr.net/jasmine/2.0.0/jasmine.js">
    </script>
    <script data-require="jasmine@*" data-semver="2.0.0" src="http://cdn.jsdelivr.net/jasmine/2.0.0/jasmine-html.js">
    </script>
    <script data-require="jasmine@*" data-semver="2.0.0" src="http://cdn.jsdelivr.net/jasmine/2.0.0/boot.js">
    </script>
</head>
 
<body>
    <script src="main.js"></script>
    <script src="main_test.js"></script>
</body>
 
</html>
cs


우선 테스트 코드를 사용하기 위한 기본적인 HTML 코드이다.

자스민은 다운받은 후 폴더에 추가하여 사용 할 수도 있지만 

개인적으로 이렇게 예제 용으로 작성하는것은 CDN을 선호하므로 위와 같이 자스민 코드의 link를 걸어준다.

그리고 하단에 테스트를 원하는 js파일과 이에 대한 테스트 검증 코드를 추가 해준다.




1
2
3
4
5
6
7
function helloWorld() {
    return "Hello world!"
}
 
function welcomeWorld(){
    return "Welcome world!";
}
cs

테스트를 원하는 코드이다.
간단하게, 호출하면 2개의 텍스트를 반환하는 함수를 만들었다.



1
2
3
4
5
6
7
8
9
10
11
describe("Hello world"function() {
    it("says hello"function() {
        expect(helloWorld()).toEqual("Hello world!");
    });
});
 
describe("welcome world"function() {
    it("says welcome"function() {
        expect(welcomeWorld()).toEqual("Welcome world!");
    });
});
cs


다음은 이에 대한 테스트를 수행하는 코드이다.

테스트에 가장 결정적인 함수는 expect인데 expect에 들어가는 인자와 

메소드 체이닝된 toEqual의 인자가 같아야 테스트 성공 메세지가 뜨게 된다.

이와같은 expect - toEqual을 여러개 작성해서 다수의 테스트를 진행할수도 있다. 





결과는 다음과 같다.

반응형

댓글