PBT 2021의 출현 - Day 20
5067 단어 testingchallengewebdevjavascript
Advent of PBT 2021 — Learn how to use property based testing and fast-check through examples
오늘 우리의 알고리즘은 drawTree입니다.
다음 문서 및 프로토타입과 함께 제공됩니다.
/**
* Draw a tree with:
* - a trunc made of '^',
* - leaves on the left made of '('
* - and the ones on the right made of ')'
*
* @param size - Size of the tree >=1
*/
declare function drawTree(size: number): string;
우리는 이미 몇 가지 예제 기반 테스트를 작성했습니다.
it("should be able to draw a tree of size 1", () => {
// prettier-ignore
expect(drawTree(1)).toEqual(
"^\n" +
"^\n" +
"^"
);
});
it("should be able to draw a tree of size 2", () => {
// prettier-ignore
expect(drawTree(2)).toEqual(
" ^\n" +
"(^)\n" +
" ^\n" +
" ^"
);
});
it("should be able to draw a tree of size 5", () => {
// prettier-ignore
expect(drawTree(5)).toEqual(
" ^\n" +
" (^)\n" +
" ((^))\n" +
" (((^)))\n" +
"((((^))))\n" +
" ^\n" +
" ^"
);
});
속성 기반 테스트로 이를 어떻게 다루겠습니까?
작업을 쉽게 하기 위해 이미 작성된 예제 기반 테스트와 가능한 알고리즘 구현과 함께 이미 설정된 CodeSandbox를 제공합니다. https://codesandbox.io/s/advent-of-pbt-day-20-61ylb?file=/src/index.spec.ts&previewwindow=tests
해결책을 보고 싶습니까? 다음은 오늘의 알고리즘을 다루기 위해 가져온 속성 집합입니다.
다른 날에 다룬 주제와 솔루션을 확인합니다.
이 시리즈에 대한 자세한 정보는 해시태그 .
Reference
이 문제에 관하여(PBT 2021의 출현 - Day 20), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/dubzzz/advent-of-pbt-2021-day-20-31a3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)