[javascript] Jasmine을 사용하여 자바스크립트 앱의 검색 및 필터링 기능을 테스트하는 방법
Jasmine은 자바스크립트 앱의 테스트를 쉽게 작성하고 실행할 수 있는 테스팅 프레임워크입니다. 이 튜토리얼에서는 Jasmine을 사용하여 자바스크립트 앱의 검색 및 필터링 기능을 테스트하는 방법에 대해 알아보겠습니다.
필요한 준비물
- Jasmine 설치
- 자바스크립트 앱의 코드
Jasmine 설치
Jasmine을 사용하기 위해 먼저 Jasmine을 설치해야 합니다. Jasmine은 npm을 통해 설치할 수 있습니다:
npm install jasmine
프로젝트의 package.json
파일에 Jasmine을 추가할 수도 있습니다:
"devDependencies": {
"jasmine": "latest"
}
설치 후에는 Jasmine 테스트 스크립트를 작성할 준비가 되었습니다.
Jasmine 테스트 작성하기
-
spec
폴더를 생성하고,search.spec.js
와 같은 이름의 새로운 테스트 스크립트 파일을 생성합니다. -
스크립트 파일 상단에 다음과 같은 코드를 추가해 Jasmine을 가져옵니다:
const Jasmine = require('jasmine');
const jasmine = new Jasmine();
jasmine.loadConfig({
spec_dir: 'spec',
spec_files: [
'**/*[sS]pec.js'
],
helpers: [
'helpers/**/*.js'
],
stopSpecOnExpectationFailure: false,
random: false
});
jasmine.execute();
- 테스트할 검색 및 필터링 기능이 있는 자바스크립트 앱의 코드를 작성합니다.
function searchItems(items, query) {
return items.filter(item => item.includes(query));
}
function filterItems(items, option) {
return items.filter(item => item.category === option);
}
search.spec.js
파일에 테스트 코드를 작성합니다:
describe('Item Search', () => {
let items;
beforeEach(() => {
items = ['apple', 'banana', 'cherry', 'durian'];
});
it('should return matching items', () => {
const result = searchItems(items, 'an');
expect(result).toEqual(['banana']);
});
});
describe('Item Filtering', () => {
let items;
beforeEach(() => {
items = [
{ name: 'apple', category: 'fruit' },
{ name: 'banana', category: 'fruit' },
{ name: 'tomato', category: 'vegetable' }
];
});
it('should return items of a specific category', () => {
const result = filterItems(items, 'fruit');
expect(result).toEqual([
{ name: 'apple', category: 'fruit' },
{ name: 'banana', category: 'fruit' }
]);
});
});
- 터미널에서 다음 명령어를 실행하여 Jasmine 테스트를 실행합니다:
jasmine
Jasmine은 테스트를 실행하고 결과를 출력합니다.
추가적인 Jasmine 테스트
Jasmine은 다양한 방식으로 테스트 코드를 작성할 수 있는 다양한 기능과 어설션(assertion) 함수를 제공합니다. 테스트 환경 및 테스트 목적에 따라 적절한 방식으로 테스트를 작성할 수 있습니다. Jasmine 공식 문서를 참조하여 필요한 테스트 코드를 작성하는 방법에 대해 더 자세히 알아보실 수 있습니다.