17주 차: Jasmine으로 테스트

이번 주에는 Colt Steele The Advanced Web Developer Bootcamp의 Jasmine을 사용한 테스트에 중점을 두었습니다.



 -Writing Tests in the Browser 
 -Jasmine Syntax and Matchers
 -Writing Better test with Hooks 
 -Spies
 -Clocks
 -TDD and BDD

브라우저에서 테스트 작성

단위 테스트



단위 테스트, 응용 프로그램의 테스트 부분 또는 응용 프로그램의 단위. 매우 일반적으로 각 장치는 애플리케이션이 예상대로 실행되는지 확인하기 위해 개별적으로 독립적으로 테스트됩니다.

Jasmine은 모든 종류의 JavaScript 환경에서 작동하는 테스트 프레임워크입니다.

작동 방식



HTML 파일 만들기
CSS 및 JavaScript 태그 연결
테스트 작성 시작

Jasmine 구문 및 매처

필수 키워드



설명 - "당신에게 ___을(를) 설명하겠습니다."
그것 - "___에 대해 말씀 드리겠습니다."
기대하다 - "내가 기대하는 바는 이렇다."

코드에서




var earth = {
  isRound: true, 
  numberFromSun: 3
}

describe("Earth", function(){
 it("is round", function(){
   expect(earth.isRound).toBe(true)
}); 

it("is the third planet from the sun", function() {
  expect(earth.numberFromSun).toBe(3)
   }); 
}); 


매처
toBe/not.toBe
ToBeCloseTo
정의할 예정
toBeFalsey/toBeTruthy
toBeGreaterThan/toBeLessThan
포함하다
동등하다
재스민.any()



Hooks로 더 나은 테스트 작성하기

전에 각각
각 "it"콜백 전에 실행


describe("Arrays", function(){
 var arr; 
 beforeEach(function(){
  arr = [1,3,5];
   });
});


후마다
각 "it"콜백 전에 실행 - 분해에 유용

설명 블록을 중첩할 수 있습니다.

스파이
Jasmine에는 스파이라는 테스트 이중 기능이 있습니다.
스파이는 모든 함수를 스텁(모방)하고 함수 호출과 모든 인수를 추적할 수 있습니다.
스파이는 스파이가 정의된 describe 또는 it 블록에만 존재합니다.
스파이는 각 사양 후에 제거됩니다.
스파이와 상호 작용하기 위한 특수 매처가 있습니다.

시계
재스민 시계는 시간 종속 코드를 테스트하는 데 사용할 수 있습니다.
jasmine.clock().install()을 호출하여 설치됩니다.
복원을 완료한 후 시계를 제거해야 합니다.
원래 기능.



비동기 코드를 테스트하는 방법



Jasmine은 또한 테스트 비동기 코드가 필요한 사양 실행을 지원합니다.
beforeAll, afterAll, beforeEach, afterEach 및 비동기 작업이 완료될 때 호출되어야 하는 선택적 단일 인수(일반적으로 'done'이라고 함)를 사용합니다.
테스트는 'done'이 호출될 때까지 완료되지 않습니다.

TDD와 BDD

TDD - 테스트 주도 개발
  • 테스트 작성
  • 테스트 실패
  • 를 참조하십시오.
  • 테스트를 통과하는 코드 작성
  • 필요에 따라 코드 리팩터링
  • 반복

  • BDD - 행동 주도 개발
    TDD의 하위 집합
    TDD와 상호 배타적이지 않음
    스타일을 장황하게 설명하고 기능의 동작을 설명합니다.
    소프트웨어 설계를 테스트할 때 유용

    좋은 웹페이지 즐겨찾기