นี่คือตัวอย่างหนึ่ง: เว็บแอปพลิเคชันของฉันมีองค์ประกอบที่สามารถลากได้ เมื่อลากองค์ประกอบเบราว์เซอร์จะสร้าง "ภาพผี" ฉันต้องการลบ "อิมเมจโกสต์" เมื่อลากแล้วเขียนการทดสอบสำหรับพฤติกรรมนี้
ปัญหาของฉันคือตอนแรกฉันไม่รู้ว่าจะแก้ไขข้อผิดพลาดนี้ได้อย่างไรและวิธีเดียวที่ฉันสามารถเขียนการทดสอบคือหลังจากที่ฉันแก้ไขแล้ว
ในฟังก์ชั่นง่าย ๆ เช่น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);
ฉันไม่สามารถรู้ได้ว่านี่เป็นวิธีแก้ปัญหา ฉันไม่สามารถเขียนแบบทดสอบได้หลังจากหาวิธีแก้ปัญหาออนไลน์เพราะวิธีเดียวที่ฉันจะรู้ได้ถ้ามันใช้งานได้จริงก็คือการเพิ่มรหัสนี้ลงใน codebase ของฉันและตรวจสอบกับเบราว์เซอร์ถ้ามันมีผลที่ต้องการ การทดสอบจะต้องเขียนหลังจากรหัสซึ่งตรงข้ามกับ TDD
สิ่งที่จะเป็นวิธีการ TDD กับปัญหานี้? การเขียนการทดสอบก่อนรหัสบังคับหรือไม่ก็ได้?