Jasmine으로 단위 테스트를 시작하는 방법
9973 단어 testingjasminejavascript
코드베이스 가져오기
예제 코드로 repository을 준비했습니다. 주요 내용은
pure-functions.js
입니다.export function greet(name, surname) {
return `Hello ${name} ${surname}!`;
}
export function calculateDiscountedPrice(originalPrice, discount) {
return originalPrice - originalPrice * discount;
}
export function power(base, exponent) {
return base ** exponent;
}
보시다시피 코드는 간단합니다.
로컬에서 새 패키지를 생성하는 경우 Gotcha
전체 리포지토리 대신 코드 파일을 복사하려는 경우 문제가 하나 있습니다. 다음을 수행해야 합니다.
$ npm init
따라서 노드 종속성은 현재 폴더에 설치됩니다.
package.json
에 추가하여 코드를 모듈로 전환합니다.{
…
"type": "module",
…
}
my repo에서 수행 방법을 확인할 수 있습니다.
재스민 설치
테스트할 코드는 브라우저나 노드에서 동일한 방식으로 작동합니다. 간단히 하기 위해 Node.js에서 테스트해 보겠습니다. 먼저 Jasmine을 설치해야 합니다. 그렇게 하려면 official documentation을 따르십시오.
$ npm install --save-dev jasmine #1
$ npx jasmine init #2
명령은 다음 기능을 수행합니다.
spec/support/jasmine.json
에서 기본 구성을 생성합니다.{
"spec_dir": "spec",
"spec_files": [
"**/*[sS]pec.?(m)js"
],
"helpers": [
"helpers/**/*.?(m)js"
],
"env": {
"stopSpecOnExpectationFailure": false,
"random": true
}
}
마지막으로 테스트 명령을 구성하도록 업데이트
package.json
해 보겠습니다.{
…
"scripts": {
"test": "jasmine"
},
…
}
테스트 실행(아니오)
이 시점에서 단일 테스트가 아니라 필요한 모든 구성을 완료해야 합니다. 예상대로 작동하는지 살펴보겠습니다.
$ npm test
> [email protected] test
> jasmine
Randomized with seed 10285
Started
No specs found
Finished in 0.002 seconds
Incomplete: No specs found
Randomized with seed 10285 (jasmine --random=true --seed=10285)
예제 테스트
간단한 테스트를 추가해 보겠습니다. Jasmine 규칙과 일치하는 새 파일
./spec/pure-functions.spec.js
을 생성합니다../spec
폴더 안에 있습니다. 생성된 구성의 다음 줄에 설정된 내용을 따릅니다. "spec_dir": "spec",
spec.js
로 끝납니다 — "spec_files": ["**/*[sS]pec.?(m)js"
에 확립된 또 다른 이름 지정 패턴입니다.내부로 들어가는 코드
./spec/pure-functions.spec.js
:import { greet } from "../pure-functions.js";
describe("greet", () => {
it("should greet by name & surname", () => {
expect(greet("Lorem", "Ipsum")).toEqual("Hello Lorem Ipsum!");
});
});
암호:
import { greet } from "../pure-functions.js";
- 소스 코드에서 함수를 가져옵니다. 이 줄은 "type": "module",
에 package.json
가 없으면 예상대로 작동하지 않습니다. describe("", <callback>)
— 더 나은 오류 메시지를 위해 관련 테스트를 래핑합니다. it("", <callback>)
- 개별 테스트, expect(<value>).<matcher>(<arguments>);
—Jasmine에서 기대치를 설정하는 방법입니다. matchers in the documentation 을(를) 찾을 수 있습니다. 운영!
이 테스트 실행:
$ npm run test
> [email protected] test
> jasmine
Randomized with seed 09863
Started
.
1 spec, 0 failures
Finished in 0.004 seconds
Randomized with seed 09863 (jasmine --random=true --seed=09863)
최종 코드
내 최종 코드here를 찾을 수 있습니다.
숙제
다음은 몇 가지 숙제입니다. 코드를 가져오고 first article에서 테스트를 계속 다시 구현하십시오. 의견에 결과나 투쟁을 공유하는 것을 환영합니다.
Reference
이 문제에 관하여(Jasmine으로 단위 테스트를 시작하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/how-to-dev/how-to-start-unit-testing-with-jasmine-474p텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)