Jasmine (JavaScript 테스트 프레임워크)
Jasmine (JavaScript testing framework)![]() | |
개발자 | Pivotal Labs |
---|---|
초기 릴리즈 | 2010년 9월 14일, [1] | 전(
안정된 릴리스 | 4.0.1 / 2022년 2월 [2] , 전( |
저장소 | |
기입처 | 자바스크립트 |
운영 체제 | 크로스 플랫폼 |
유형 | 유닛 테스트 |
면허증. | MIT 라이선스[3] |
웹 사이트 | jasmine![]() |
Jasmine은 [4]JavaScript용 오픈소스 테스트 프레임워크입니다.이는 JavaScript 지원 플랫폼에서 실행되며 애플리케이션이나 IDE에 간섭하지 않고 읽기 쉬운 구문을 사용하는 것을 목표로 합니다.ScrewUnit, JSSpec,[5] JSpec 및 RSpec과 같은 다른 장치 테스트 프레임워크의 영향을 많이 받습니다.
역사
Pivotal Labs for Jasmine의 개발자들은 [6]JsUnit이라고 불리는 유사한 단위 테스트 프레임워크를 Jasmine의 적극적인 개발에 앞서 이미 개발했다.
특징들
- 비동기 [7]테스트를 지원합니다.
- 테스트 [7]더블 구현에 '스파이'를 활용합니다.
- Jasmine-jQuery라고 [7]불리는 Jasmine의 프런트 엔드 확장을 통해 프런트 엔드 코드 테스트를 지원합니다.
사용.
재스민은 읽기 쉬운 것을 목표로 한다.간단한 hello 월드 테스트는 다음과 같은 코드입니다.여기서 descript()는 테스트의 스위트를 나타내고 it()는 개별 테스트 사양입니다."it()"라는 이름은 동작 중심 개발 개념을 따르고 테스트 이름의 첫 번째 단어로 사용됩니다. 테스트 이름은 완전한 문장이어야 합니다.사용방법은 RSpec과 유사한 구문을 따릅니다.
아래 코드는 이 기능을 테스트합니다.
기능. 안녕 세계() { 돌아가다 '헬로우 월드!'; }
는 그 출력이 실제로 "Hello world!"라는 텍스트임을 확인합니다.
묘사하라('Hello world', 기능.() { 그것('안녕하세요', 기능.() { 기대하다(안녕 세계()).동등.('헬로우 월드!'); }); });
Jasmine은 풍부한 내장 매처 세트를 제공합니다.위의 예에서 toEqual은 helloWorld() 함수에서 반환된 값과 'Hello world!' 문자열 간의 동일성을 확인합니다.이는 다른 시험 프레임워크에서 사용된 주장과 동일하다.재스민 매처는 부울 값을 반환합니다.예상치가 일치하면 true, 예상치가 [7]일치하지 않으면 false를 반환합니다.좋은 방법은 개별 it() 테스트 사양에 단일 기대치를 넣는 것입니다.
기타 빌트인 매처에는 toBe, toBeTruthy, toBeFalsy, toContain, toBeDefined, toBeNull, toBeNaN, toBeGreater 등이 있습니다.그 다음, 'BeLessThan', 'BeCloseTo'[8]입니다.ID Matcher to Be는 두 항목이 동일한 개체인지 확인합니다.조건 Matchers to BeTruthy, to BeFalsy는 어떤 것이 참인지 거짓인지를 평가하고, to BeDefined, to BeUndefined는 어떤 것이 정의되었는지 또는 정의되지 않았는지 확인합니다.이름에서 알 수 있듯이 toBeNull은 어떤 것이 늘인지 확인하고 toBeNaN은 어떤 것이 숫자(NaN)가 아닌지 확인합니다.Precision Matcher toBeCloseTo는 두 개의 파라미터를 받아들여 두 번째 파라미터에 나타나듯이 일정한 10진수 정밀도가 주어진 상태에서 숫자가 첫 번째 파라미터에 가까운지 여부를 확인합니다.Matcher toContain은 요소, 객체 또는 하위 문자열이 배열, 목록 또는 문자열에 포함되어 있는지 확인하기 위해 사용됩니다.
특수 내장형 matcher toThrow는 예외가 [7]발생했음을 확인하기 위해 사용됩니다.다음 코드는 "Some exception"이 느려지는 것을 확인합니다.
묘사하라('예외가 발생할 것으로 예상', 기능.() { 그것('일부 예외 제외', 기능.() { 기대하다( 기능.(){ 던지다('일부 예외'); }).투척('일부 예외'); }); });
Jasmine에는 커스텀메처, 스파이, 비동기 사양 지원 등 다양한 기능이 있습니다.
재스민 테스트 러너
재스민에는 테스트 주자가 내장되어 있습니다.Jasmine 테스트는 단순한 SpecRunner.html[9] 파일을 포함하거나 간단한 JavaScript 테스트 실행 도구인 Karma를 [10]사용하여 Nodejs, Python, Ruby 또는 (구식)과 같은 다양한 언어에 지원되는 명령줄 테스트 실행으로 브라우저 테스트를 실행할 수 있습니다.
재스민과 모카의 비교[11]
Mocha는 또 다른 인기 있는 Javascript 테스트 프레임워크입니다.Jasmine과 Mocha의 비교는 아래 표에 나와 있습니다.
재스민 | 모카 |
---|---|
Jasmine은 스파이를 사용하여 테스트 복식을 제공합니다. | Mocha는 테스트 더블 라이브러리가 포함되어 있지 않으며, 일반적으로 Sinon과 같은 외부 라이브러리를 사용합니다. |
Jasmine에는 테스트를 실행하기 위한 명령줄 유틸리티가 있습니다. | Mocha에는 테스트를 실행하기 위한 명령줄 유틸리티가 있습니다. |
쟈스민에게는 주장이 들어있다. | Mocha는 어설션 라이브러리가 없으며 어설션에는 Chai를 사용합니다. |
혜택들
「 」를 참조해 주세요.
레퍼런스
- ^ Frank, Davis W. "Jasmine 1.0 Released". Pivotal Labs. Archived from the original on 22 February 2014. Retrieved 11 February 2014.
- ^ "Releases · jasmine/jasmine". github.com. Retrieved 2022-04-05.
- ^ "jasmine/MIT.LICENSE". GitHub. Retrieved 25 April 2017.
- ^ "Home". jasmine.github.io.
- ^ "Background · jasmine/Jasmine Wiki". GitHub.
- ^ GitHub JsUnit 프로젝트 페이지
- ^ a b c d e Ragonha, Paulo (2013). Jasmine JavaScript Testing. Packt Publishing. ISBN 978-1782167211.
- ^ Hahn, Evan (2013). JavaScript Testing with Jasmine. O'Reilly Media. ISBN 978-1449356378.
- ^ "A simple project". GitHub.
- ^ "Karma Jasmine".
- ^ "Jasmine vs. Mocha". Marco Franssen. Retrieved 13 February 2017.
- ^ a b "Comparison: Jasmine vs Mocha vs QUnit StackShare". Retrieved 13 February 2017.