Jasmine 프레임워크 튜토리얼: 예제를 사용한 단위 테스트
⚡ 스마트 요약
재스민은 행동 중심적입니다. Java브라우저나 DOM 없이 Node.js 단위 테스트를 실행하는 스크립트 테스트 프레임워크입니다. describe 블록, spec 및 expect 매처를 사용하여 내보낸 모든 함수가 문서화된 대로 동작하는지 검증합니다.
JasmineJS란 무엇인가요?
Jasmine은 오픈 소스이며 가장 인기가 높습니다. Java모든 종류의 테스트를 위한 스크립트 라이브러리 테스트 프레임워크 Java스크립트 응용 프로그램. Jasmine은 각 줄이 동작 주도 개발(BDD) 절차를 따르도록 합니다. Java스크립트 문장이 적절하게 단위 테스트되었습니다.
Jasmine Framework는 어떤 용도로 사용되나요?
테스팅은 모든 애플리케이션의 핵심 요소입니다. Node.js 단위 테스트에 사용할 수 있는 프레임워크로는 Jasmine이 있습니다. 2000년대 초반에도 테스트 프레임워크가 존재했습니다. JavaScript JsUnit이라는 애플리케이션입니다. Later 이 프레임워크는 업그레이드되어 이제 Jasmine으로 알려졌습니다.
Jasmine은 자동화에 도움이 됩니다. 단위 테스트이는 개발 과정에서 상당히 중요한 관행이 되었습니다.ping 최신 웹 애플리케이션 배포.
이 Jasmine 튜토리얼에서는 Jasmine을 사용하여 환경을 설정하는 방법과 첫 번째 Node.js 애플리케이션에 대해 Jasmine 테스트를 실행하는 방법을 배웁니다.
Node.js 애플리케이션 테스트를 위한 Jasmine
재스민은 행동 주도 개발(BDD) 테스트 프레임워크 Java스크립트입니다. 그렇습니다. 지원 브라우저, DOM 또는 기타 요소에 의존 Java스크립트 프레임워크입니다. 따라서 웹사이트에 적합합니다. Node.js를 프로젝트든 어디든 Java스크립트를 실행할 수 있습니다. Jasmine을 사용하려면 먼저 필요한 Jasmine 모듈을 다운로드하여 설치해야 합니다.
Jasmine 테스트 환경을 설정하는 방법
이 Jasmine Node.js 튜토리얼의 다음 단계에서는 환경을 초기화하고 Jasmine 설정 파일을 살펴보아야 합니다. 아래 단계는 환경에 Jasmine을 설정하는 방법을 보여줍니다.
단계 1) NPM 모듈 설치
당신은해야 NPM 설치 jasmine 모듈은 Node 애플리케이션 내에서 Jasmine 프레임워크를 사용하기 위한 것입니다. jasmine-node 모듈을 설치하려면 아래 명령어를 실행하세요.
npm install jasmine-node
버전 참고 (2026): 위의 기존 명령어는 여전히 작동하지만, 재스민 노드 해당 모듈은 유지보수 모드이며 Jasmine 1.3을 포함하고 있으므로 레거시 프로젝트에서만 사용하세요. 새로운 Node.js 작업에서는 유지보수 버전이 설치됩니다. 재스민 CLI 개발 종속성으로 사용되며 npx를 통해 호출됩니다.
npm install --save-dev jasmine npx jasmine init
재스민 6.x 현재 주요 릴리스이며 Node.js 20, 22 및 24를 지원하며, Node.js 24는 2026년에도 활성 LTS 릴리스입니다.
단계 2) Jasmine 환경 초기화
프로젝트 초기화 – 이 과정을 통해 Jasmine은 spec 디렉토리와 설정 JSON 파일을 생성합니다. spec 디렉토리는 모든 테스트 파일을 저장하는 데 사용됩니다. 이렇게 하면 Jasmine은 모든 테스트 파일의 위치를 파악하고 그에 따라 테스트를 실행할 수 있습니다. JSON 이 파일은 Jasmine에 대한 특정 구성 정보를 저장하는 데 사용됩니다.
Jasmine 환경을 초기화하려면 아래 명령어를 실행하세요.
jasmine init
단계 3) 구성 파일을 검사하십시오.
구성 파일은 spec/support 폴더에 jasmine.json으로 저장됩니다. 이 파일은 Jasmine 실행기에 포함할 소스 파일과 사양 파일을 열거합니다.
아래 스크린샷은 Jasmine의 jasmine.json 파일의 일반적인 예시를 보여줍니다.
- spec 디렉터리가 여기에 지정되어 있습니다. 앞서 언급했듯이 jasmine이 실행되면 이 디렉터리에 있는 모든 테스트를 검색합니다.
- 다음으로 주목해야 할 것은 spec_files 매개변수입니다. 이는 생성된 테스트 파일이 무엇이든 'spec' 키워드가 추가되어야 함을 나타냅니다.
설정 참고 사항: Jasmine 6.x에서도 동일한 파일이 허용됩니다. 도우미각 스펙마다 한 번씩 로드되는 것과 환경 random 및 stopSpecOnExpectationFailure와 같은 옵션을 포함하는 블록입니다. 기본 spec_files 글로브는 다음과 같습니다. **/*[sS]pec.?(m)js그리고 다른 파일을 전달할 수도 있습니다. –config 또는 JASMINE_CONFIG_PATH 변하기 쉬운.
다음 Jasmine 프레임워크 튜토리얼에서는 Jasmine을 사용하여 Node.js 애플리케이션을 테스트하는 방법을 알아봅니다.
Jasmine을 사용하여 Node.js 애플리케이션을 테스트하는 방법
Node.js 애플리케이션에 Jasmine 단위 테스트를 사용하려면 일련의 단계를 따라야 합니다.
아래 예시에서는 테스트가 필요한 두 숫자를 더하는 모듈을 정의할 것입니다. 그런 다음 테스트 코드가 포함된 별도의 코드 파일을 정의하고 Jasmine을 사용하여 해당 덧셈 함수를 테스트합니다.
단계 1) 테스트해야 할 코드를 정의합니다. 두 숫자를 더하고 결과를 반환하는 함수를 정의합니다. 이 코드는 "Add.js"라는 파일에 작성됩니다.
아래 스크린샷은 완성된 Add.js 모듈을 보여주며, 동일한 코드가 그 아래에 텍스트로 반복되어 있습니다.
var exports=module.exports={}; exports.AddNumber=function(a,b) { return a+b; };
Code 설명
- "내보내기" 키워드는 이 파일에 정의된 기능이 실제로 다른 파일에서 액세스될 수 있도록 하는 데 사용됩니다.
- 그런 다음 'AddNumber'라는 함수를 정의합니다. 이 함수는 2개의 매개변수 a와 b를 사용하도록 정의되었습니다. 이 함수는 다른 응용 프로그램 모듈에서 액세스할 수 있는 공용 함수로 만들기 위해 "내보내기" 모듈에 추가됩니다.
- 우리는 마침내 함수가 매개변수의 추가된 값을 반환하도록 만들고 있습니다.
단계 2) 다음으로, Add.js 파일의 "Add" 함수를 테스트하는 데 사용할 Jasmine 테스트 코드를 정의해야 합니다. 아래 코드를 라는 파일에 넣어주세요. add-spec.js.
주의 사항Jasmine이 테스트 파일을 인식할 수 있도록 테스트 파일에 'spec'이라는 단어를 추가해야 합니다.
아래 스크린샷은 동일한 사양 파일이 편집기에서 열린 모습을 보여줍니다.
var app=require("../Add.js"); describe("Addition",function(){ it("The function should add 2 numbers",function() { var value=app.AddNumber(5,6); expect(value).toBe(11); }); });
Code 설명
- 이 파일에서 'AddNumber' 기능을 테스트할 수 있도록 먼저 Add.js 파일을 포함해야 합니다.
- 이제 테스트 모듈을 만드는 중입니다. 테스트 모듈의 첫 번째 부분은 기본적으로 테스트 이름을 지정하는 메서드를 설명하는 것입니다. 이 경우 테스트 이름은 "Addition"입니다.
- 다음 부분은 'it' 메소드를 사용하여 테스트에 대한 설명을 제공하는 것입니다.
- 이제 AddNumber 메서드를 호출하고 매개변수 5와 6을 전달합니다. 이 매개변수들은 Add.js 파일의 AddNumber 메서드로 전달됩니다. 반환 값은 value라는 변수에 저장됩니다.
- 마지막 단계는 비교 또는 실제 테스트를 수행하는 것입니다. AddNumber 함수가 반환하는 값이 11이 될 것으로 예상하므로 expect(value).toBe(예상 값) 메서드를 사용하여 이를 정의합니다.
산출
- 테스트를 실행하려면 jasmine 명령을 실행해야 합니다.
- 아래 스크린샷은 Jasmine 명령어를 실행한 후 add-spec.js라는 테스트가 있음을 감지하고 해당 테스트를 실행하는 것을 보여줍니다. 테스트에 오류가 있으면 오류가 표시됩니다.
Add 예제에서는 하나의 매처만 사용하지만, Jasmine은 모든 매처를 제공합니다. 아래 표에는 작성하게 될 거의 모든 어설션을 포괄하는 매처 목록이 나와 있습니다.
가장 많이 사용하게 될 자스민 성냥
매처는 expect() 다음에 오는 비교입니다. 매처 앞에 .not을 연결하여 이를 반전시킬 수 있습니다. 예를 들어 expect(value).not.toBe(11)과 같습니다.
| 매처 | 무엇을 확인하나요? | 일반적인 사용 |
| 장차 ~ 가 되는 | 엄격한 동일성, ===와 같은 비교 | expect(value).toBe(11) |
| 같음 | 객체와 배열의 심층적 동등성 | expect(user).toEqual({id: 1}) |
| 포함하기 | 배열 또는 문자열 내의 멤버십 | expect(files).toContain('add-spec.js') |
| 정의되지 않음 | 값이 정의되지 않았습니다 | expect(app.AddNumber).toBeDefined() |
| 던지다 | 래핑된 함수에서 오류가 발생합니다. | expect(callAdd).toThrow() |
| 불리게 되었어야 했다 | 스파이가 최소 한 번 이상 소환되었습니다. | expect(logger.write).toHaveBeenCalled() |
두 가지 습관을 들이면 오류 메시지를 읽기 쉽게 유지할 수 있습니다. `toBe`는 기본형 데이터 유형이나 동일한 참조에만 사용하세요. 내용이 같은 두 객체는 절대 `===` 관계가 성립하지 않기 때문입니다. 구조체에는 `toEqual`을 사용하고, 인수가 호출 자체만큼 중요한 경우에는 `toHaveBeenCalledWith`를 추가하세요.
Jasmine에서의 설치, 해체 및 스파이 활동
실제 스위트에는 공유 상태와 느린 협업자를 위한 더블링 기능이 필요합니다. Jasmine은 추가 패키지 없이 이 두 가지를 모두 제공합니다.
- 각각 이전과 각각 이후 describe 블록 내의 모든 스펙 실행 전후에 실행되며, 이는 픽스처를 재구축하기에 가장 적합한 위치입니다.
- 모든 것 이전과 모든 것 이후 블록 전체에 대해 한 번만 실행되므로 연결부 개설과 같은 비용이 많이 드는 작업에만 사용하십시오.
- spyOn(object, 'method') 실제 방법을 다음으로 대체합니다 tracking double; 응답을 제어하려면 .and.returnValue()를 추가하세요.
- jasmine.createSpy('name') 연결할 객체가 없는 콜백에 대해 독립형 double을 생성합니다.
- 비동기 사양 비동기 함수로 선언되어 대기될 수도 있고, 프로미스를 반환할 수도 있으며, 정확히 한 번만 호출되어야 하는 완료 콜백을 받을 수도 있습니다.
스파이는 스펙 간에 재설정되므로 스위트에서 스텁된 메서드가 다음 테스트로 유출되는 일이 없습니다. 이러한 격리 덕분에 실패한 스펙은 여러 결함이 아닌 하나의 결함을 가리키게 되는데, 이는 앞서 설명한 것과 동일한 원칙입니다. 단위 테스트 기초.
재스민 vs 모카 vs 제스트
Jasmine은 지배적인 세 가지 프레임워크 중 하나입니다. Java스크립트 테스트의 경우, 선택은 대개 얼마나 많은 배선을 보유할 것인지에 달려 있습니다.
| 아래 | 재스민 속 | 모카 | 농담 |
| 어설 션 | 내장 | 추가됨, 보통 차이 | 내장 |
| 스파이와 조롱 | 내장 | 추가됨, 보통 시논 | 내장 |
| 실행 | 일련의 | 일련의 | 프로세스 전반에 걸친 병렬 처리 |
| 스냅 샷 | 아니 | 아니 | 가능 |
| 공동 주택 | Angular, 일반 Node.js | 유연한 Node.js 스택 | React 및 최신 번들러 |
Pick 모카 자신만의 어설션 및 모킹 스택을 구성하고 싶을 때, 농담 병렬 실행 시에는 구성 관리보다 코드 커버리지와 스냅샷이 더 중요합니다. Jasmine은 완전한 기능을 갖춘 가장 가벼운 옵션으로, 이러한 이유로 여전히 널리 사용되고 있습니다. 자동화 테스트 스위트.




