다음 라이브러리에 API 우선 및 TDD 사용
8969 단어 nodetestingtddjavascript
TDD가 익숙하지 않은 경우 다음을 빠르고 간단하게 포인트 포스트로 확인하십시오.
TDD 테스트
Eljay-Adobe ・ 10월 4일 '18 ・ 2분 읽기
#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 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까지 이를 제한하는 데 도움이 됩니다.
코드 검사를 통해 테스트되지 않은 코드 부분을 확인할 수 있습니다. 이렇게 하면 최대 케이스를 처리하는 데 도움이 됩니다. 나는 nyc이 mocha과 잘 작동하기 때문에 좋아합니다.
돌연변이 테스트는 코드의 올바른 부분을 테스트했는지 확인할 수 있는 강력한 도구입니다. 소스 파일을 약간 변경하고 일부 테스트가 실패하는지 확인합니다. 그렇지 않은 경우 돌연변이가 테스트를 통과하지 못하게 하는 일부 테스트를 통과했을 수 있습니다. 단위 테스트에서 높은 수준의 품질에 도달하는 데 도움이 되는 멋진 기능입니다. 나는 stryker을 많이 좋아한다.
결론적으로
2019년 테스트는 무섭지 않지만 접근 가능해야 합니다. 우리는 실제보다 훨씬 더 복잡하게 만드는 경향이 있다고 생각합니다. 이전에 한 번도 테스트를 해 본 적이 없다면 API 먼저 테스트를 통해 테스트를 시작하고 싶은 마음이 생기기를 바랍니다.
테스트에는 시간이 조금 더 필요하지만 더 많은 기능과 수정을 위해 확장할 때 이 시간을 얻을 수 있습니다. 견고한 기반을 구축하기 위해 테스트에 의존할 수 있기 때문에 제품의 다음 릴리스에 대해 실제로 더 확신을 가질 수 있습니다.
당신이 생각한 적이 있다면
Better not touch this part of the code, this is too complicated and could break if we add something.
아마도 지금이 단위 테스트를 생각할 적기일 것입니다 ;).
Reference
이 문제에 관하여(다음 라이브러리에 API 우선 및 TDD 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/khalyomede/using-api-first-and-tdd-for-your-next-library-49c2
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
2019년 테스트는 무섭지 않지만 접근 가능해야 합니다. 우리는 실제보다 훨씬 더 복잡하게 만드는 경향이 있다고 생각합니다. 이전에 한 번도 테스트를 해 본 적이 없다면 API 먼저 테스트를 통해 테스트를 시작하고 싶은 마음이 생기기를 바랍니다.
테스트에는 시간이 조금 더 필요하지만 더 많은 기능과 수정을 위해 확장할 때 이 시간을 얻을 수 있습니다. 견고한 기반을 구축하기 위해 테스트에 의존할 수 있기 때문에 제품의 다음 릴리스에 대해 실제로 더 확신을 가질 수 있습니다.
당신이 생각한 적이 있다면
Better not touch this part of the code, this is too complicated and could break if we add something.
아마도 지금이 단위 테스트를 생각할 적기일 것입니다 ;).
Reference
이 문제에 관하여(다음 라이브러리에 API 우선 및 TDD 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/khalyomede/using-api-first-and-tdd-for-your-next-library-49c2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)