다음 라이브러리에 API 우선 및 TDD 사용

저는 이 기술을 사용하여 더 관련성 높은 단위 테스트를 만드는 데 도움을 주었고 여러분과 공유하고 싶었습니다.

TDD가 익숙하지 않은 경우 다음을 빠르고 간단하게 포인트 포스트로 확인하십시오.




TDD는 시작하기에 적합한 도구가 아닐 수 있습니다.



날짜가 두 날짜 사이에 있는지 확인하기 위해 노드 모듈을 구축한다고 가정해 보겠습니다. is-date-between라고 부르자.

지금 바로 단위 테스트를 만들어 봅시다.

...

복잡하게 들리지 않나요?

구조를 위한 API 우선



다른 접근 방식을 살펴보겠습니다. 이 라이브러리의 사용 예를 들어 주세요.

const isDateBetween = require('is-date-between');

const dateToCheck = new Date('2018-12-26');
const pastDate = new Date('2017-01-01');
const futureDate = new Date('2019-01-01');

console.log(isDateBetween(dateToCheck, pastDate, futureDate)); // true


이를 통해 피하고 싶은 다른 문제를 추정할 수 있습니다.
  • 과거 및 미래 날짜를 되돌릴 수 없습니다
  • .
  • 모든 매개변수는 날짜 개체여야 합니다
  • .
  • 검사는 포괄적이어야 합니다
  • .

    다음과 같이 표기됩니다.

    const chai = require('chai');
    const expect = chai.expect;
    const isDateBetween = require('is-date-between');
    
    describe('isDateBetween', function() {
      it('should throw an exception if the past & future dates are reverted', function() {
        expect(function() {
          const dateToCheck = new Date('2018-12-26');
          const pastDate = new Date('2017-01-01');
          const futureDate = new Date('2019-01-01');
    
          isDateBetween(dateToCheck, futureDate, pastDate);
        }).to.throw('dates are reverted');
      });
    
      it('should throw an exception if the date to check is not a date object');
      it('should throw an exception if the past date is not a date object');
      it('should throw an exception if the future date is not a date object');
      it('should return true if the date to check is between');
      it('should return false if the date to check is not between');
    
      describe('inclusive dates', function() {
        it('should return true if the date to check is equal to the past date');
        it('should return true if the date to check is equal to the future date');
      });
    });
    


    봐, 해냈어!

    다음 단계: 적용 범위 및 돌연변이 테스트



    테스트는 인간에 의존합니다. 정의에 따르면 우리는 완벽하지 않고, 잊을 수 있고, 실수를 할 수 있고, 부적절하거나 반복적일 수 있습니다...

    일부 도구는 Elon Musk have turned us into cyborgs까지 이를 제한하는 데 도움이 됩니다.

    코드 검사를 통해 테스트되지 않은 코드 부분을 확인할 수 있습니다. 이렇게 하면 최대 케이스를 처리하는 데 도움이 됩니다. 나는 nycmocha과 잘 작동하기 때문에 좋아합니다.

    돌연변이 테스트는 코드의 올바른 부분을 테스트했는지 확인할 수 있는 강력한 도구입니다. 소스 파일을 약간 변경하고 일부 테스트가 실패하는지 확인합니다. 그렇지 않은 경우 돌연변이가 테스트를 통과하지 못하게 하는 일부 테스트를 통과했을 수 있습니다. 단위 테스트에서 높은 수준의 품질에 도달하는 데 도움이 되는 멋진 기능입니다. 나는 stryker을 많이 좋아한다.

    결론적으로



    2019년 테스트는 무섭지 않지만 접근 가능해야 합니다. 우리는 실제보다 훨씬 더 복잡하게 만드는 경향이 있다고 생각합니다. 이전에 한 번도 테스트를 해 본 적이 없다면 API 먼저 테스트를 통해 테스트를 시작하고 싶은 마음이 생기기를 바랍니다.

    테스트에는 시간이 조금 더 필요하지만 더 많은 기능과 수정을 위해 확장할 때 이 시간을 얻을 수 있습니다. 견고한 기반을 구축하기 위해 테스트에 의존할 수 있기 때문에 제품의 다음 릴리스에 대해 실제로 더 확신을 가질 수 있습니다.

    당신이 생각한 적이 있다면

    Better not touch this part of the code, this is too complicated and could break if we add something.



    아마도 지금이 단위 테스트를 생각할 적기일 것입니다 ;).

    좋은 웹페이지 즐겨찾기