예를 들면 다음과 같습니다. 웹 응용 프로그램에 드래그 가능한 요소가 있습니다. 요소를 드래그하면 브라우저가 "고스트 이미지"를 생성합니다. 드래그 할 때 "고스트 이미지"를 제거하고이 동작에 대한 테스트를 작성하려고합니다.
내 문제는 처음 에이 버그를 수정하는 방법을 모르고 테스트를 작성할 수있는 유일한 방법은 수정 한 것입니다.
와 같은 간단한 함수에서 코드를 작성하기 전에 let sum = (a, b) => a - b
왜 sum(1, 2)
같지 않은지 테스트 할 수 있습니다 3
.
설명하는 경우 검증이 무엇인지 알 수 없기 때문에 테스트 할 수 없습니다 (어설 션이 무엇인지 모르겠습니다).
설명 된 문제에 대한 해결책은 다음과 같습니다.
let dataTransfer = e.dataTransfer
let canvas = document.createElement('canvas');
canvas.style.opacity = '0';
canvas.style.position = 'absolute';
canvas.style.top = '-1000px';
dataTransfer.effectAllowed = 'none';
document.body.appendChild(canvas);
dataTransfer.setDragImage(canvas, 0, 0);
이것이 해결책이라는 것을 알 수 없었습니다. 실제로 솔루션이 실제로 작동하는지 알 수있는 유일한 방법은이 코드를 코드베이스에 추가하고 원하는 효과가 있는지 브라우저로 확인하기 때문에 솔루션을 온라인으로 찾은 후에도 테스트를 작성할 수 없었습니다. 테스트는 코드 다음에 작성되어야했으며 이는 TDD에 반합니다.
이 문제에 대한 TDD 접근법은 무엇입니까? 코드 작성 전에 테스트를 작성해야합니까?