[javascript] Jasmine을 사용하여 자바스크립트 앱의 검색 및 필터링 기능을 테스트하는 방법

Jasmine은 자바스크립트 앱의 테스트를 쉽게 작성하고 실행할 수 있는 테스팅 프레임워크입니다. 이 튜토리얼에서는 Jasmine을 사용하여 자바스크립트 앱의 검색 및 필터링 기능을 테스트하는 방법에 대해 알아보겠습니다.

필요한 준비물

Jasmine 설치

Jasmine을 사용하기 위해 먼저 Jasmine을 설치해야 합니다. Jasmine은 npm을 통해 설치할 수 있습니다:

npm install jasmine

프로젝트의 package.json 파일에 Jasmine을 추가할 수도 있습니다:

"devDependencies": {
  "jasmine": "latest"
}

설치 후에는 Jasmine 테스트 스크립트를 작성할 준비가 되었습니다.

Jasmine 테스트 작성하기

  1. spec 폴더를 생성하고, search.spec.js와 같은 이름의 새로운 테스트 스크립트 파일을 생성합니다.

  2. 스크립트 파일 상단에 다음과 같은 코드를 추가해 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();
  1. 테스트할 검색 및 필터링 기능이 있는 자바스크립트 앱의 코드를 작성합니다.
function searchItems(items, query) {
  return items.filter(item => item.includes(query));
}

function filterItems(items, option) {
  return items.filter(item => item.category === option);
}
  1. 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' }
    ]);
  });
});
  1. 터미널에서 다음 명령어를 실행하여 Jasmine 테스트를 실행합니다:
jasmine

Jasmine은 테스트를 실행하고 결과를 출력합니다.

추가적인 Jasmine 테스트

Jasmine은 다양한 방식으로 테스트 코드를 작성할 수 있는 다양한 기능과 어설션(assertion) 함수를 제공합니다. 테스트 환경 및 테스트 목적에 따라 적절한 방식으로 테스트를 작성할 수 있습니다. Jasmine 공식 문서를 참조하여 필요한 테스트 코드를 작성하는 방법에 대해 더 자세히 알아보실 수 있습니다.

참고 자료