«

Jasmine을 이용해서 테스트 자동화 하기

서론

Jasmine을 이용해서 테스트 자동화를 진행하겠습니다. 여기서 테스트 자동화란 TDD나 Jasmine을 말한다. 작업자가 일일이 눈으로 확인할 필요없이 자동으로 체크하는 것이다. 단위테스트를 선진행 후 실제 프로젝트에 리펙토링 후 삽입하는 형태로 작업이 이루어지니 버그발생 확률이나 오류를 초기에 잡기 수월합니다.

설명

jasmine을 진행하기 전에 필요한 파일을 다운 한 후 진행하겠습니다. 다운이 되셨다면 아래코드를 index.html에 삽입해주세요

<link rel="shortcut icon" type="image/png" href="jasmine/lib/jasmine-2.0.0/jasmine_favicon.png">
<link rel="stylesheet" type="text/css" href="jasmine/lib/jasmine-2.0.0/jasmine.css">

<script type="text/javascript" src="jasmine/lib/jasmine-2.0.0/jasmine.js"></script>
<script type="text/javascript" src="jasmine/lib/jasmine-2.0.0/jasmine-html.js"></script>
<script type="text/javascript" src="jasmine/lib/jasmine-2.0.0/boot.js"></script>

경로는 수정해주셔야 합니다. 소스코드가 작성 될 파일을 생성해주세요

caesar.js

const caesar = (s, n) => {
    const lowerCase = "abcdefghijklmnopqrstuvwxyz";
    const upperCase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    let result = '';
    Inner:
        for(let i=0; i<s.length; i++){
            for(let j=0; j<=lowerCase.length; j++){
                if(s[i] === lowerCase[j]){
                    let temp = j+n;
                    if(temp >= lowerCase.length){
                        while(temp >= lowerCase.length) {
                            temp -= lowerCase.length;
                        }
                    }
                    result += lowerCase[temp];
                }
                if(s[i] === upperCase[j]){
                    let temp = j+n;
                    if(temp >= upperCase.length){
                        while(temp >= lowerCase.length){
                            temp -= upperCase.length;
                        }
                    }
                    result += upperCase[temp];
                }
                if(i === s.length && j === lowerCase.length) return result;
                if(s[i] === ' '){
                    result += ' ';
                    continue Inner;
                }
            }
        }
    return result;
};

암호화 하는 알고리즘인데 여기에서 출력 된 값을 테스트 할 js파일을 생성합시다. jasmine/spec 폴더내에 생성하시면 됩니다.

hello.spec.js

describe("jasmine 테스트", function () {
    it("비밀번호 알고리즘", function () {
        expect(caesar('a zEf', 3)).toEqual('d cHi');
    });
});

여기까지 진행 후 로컬서버를 구동해 보시면 아래와 같은 화면이 보이실 겁니다. jasmine통과이미지