Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Ruby

คุณใช้แอพจากไม่มีการทดสอบไปยัง TDD ได้อย่างไร

คุณตื่นเต้นกับแอปที่คุณสร้าง มีเพียงปัญหาเดียวคือ คุณไม่มีการทดสอบใดๆ คุณต้องการเขียนโดยใช้ Test-Driven Development แต่คุณไม่รู้ว่าจะเริ่มต้นจากตรงไหน ดังนั้นคุณจึงติดอยู่ คุณไปจากที่นี่ที่ไหน คุณนำแอปที่ไม่มีการทดสอบมาเขียนแอปโดยใช้ TDD ได้อย่างไร

ทดสอบโค้ดที่คุณมีอยู่แล้ว

คุณมีโค้ดจำนวนมากที่ไม่มีการทดสอบ แต่นั่นไม่ได้หมายความว่าคุณจะเขียนแบบทดสอบไม่ได้ ตอนนี้ เทียบกับรหัสที่มีอยู่ ดังนั้นให้เริ่มทดสอบโค้ดที่คุณมีอยู่แล้ว เพื่อให้แน่ใจว่าโค้ดของคุณทำงานในแบบที่คุณคาดหวังให้ใช้งานได้

ไม่ใช่ TDD แต่การทดสอบโค้ดที่มีอยู่จะช่วยให้คุณเรียนรู้ TDD :

  • คุณฝึกฝนการคิดเกี่ยวกับ Edge Case และเงื่อนไขข้อผิดพลาด

    ในการเขียนการทดสอบโดยไม่ต้องใช้เวลาหลายปีในการทดสอบทุกข้อมูลที่เป็นไปได้ คุณต้องคิดว่าโค้ดนั้นน่าจะพังมากที่สุด หากวิธีที่คุณกำลังทดสอบใช้สตริง จะเกิดอะไรขึ้นถ้าคุณส่งสัญลักษณ์ให้ จะเกิดอะไรขึ้นถ้าคุณส่งมัน nil ? และหากคุณกำลังทดสอบฟังก์ชันที่หารตัวเลข คุณควรทดสอบด้วย 0 แต่คุณอาจไม่จำเป็นต้องทดสอบด้วย 1 และ 2.

    หลังจากที่คุณเขียนการทดสอบเพียงพอแล้ว คุณจะเริ่มคาดการณ์ว่าวิธีการของคุณมีแนวโน้มที่จะทำลายตำแหน่งใดมากที่สุด และเมื่อคุณเริ่ม TDDing คุณจะใช้ทักษะนี้ในการเขียนการทดสอบที่มีประสิทธิภาพซึ่งบังคับให้โค้ดของคุณจัดการกับ Edge Case ได้ดีขึ้น

  • คุณฝึกเขียนแบบทดสอบที่มีโครงสร้างดี

    เมื่อคุณเขียนการทดสอบหลังเหตุการณ์จริง คุณสามารถลองใช้รูปแบบต่างๆ เพื่อจัดโครงสร้างการทดสอบเหล่านั้น โค้ดที่คุณกำลังทดสอบมีอยู่แล้ว ดังนั้นคุณจึงสามารถมุ่งเน้นไปที่การทดสอบและวิธีเขียนได้ และเมื่อคุณเรียนรู้รูปแบบที่ดีแล้ว คุณจะเขียนการทดสอบได้ดีขึ้นเมื่อคุณไม่ มีรหัสที่ต้องพึ่งพา

  • คุณค้นพบสิ่งที่ทำให้โค้ดยากต่อการทดสอบ

    เมื่อคุณเขียนการทดสอบเพิ่มเติม คุณจะเริ่มรู้สึกว่าส่วนใดในระบบของคุณจะทดสอบได้ยากที่สุด เมื่อคุณสังเกตเห็นพื้นที่เหล่านั้น คุณสามารถเน้นให้เป็นสถานที่ที่ต้องมีการปรับโครงสร้างใหม่ ยิ่งไปกว่านั้น คุณจะเริ่มเขียนโค้ดที่ทดสอบได้มากขึ้นในครั้งแรก

    เมื่อคุณรู้แล้วว่าโค้ดที่ทดสอบง่ายหน้าตาเป็นอย่างไร คุณสามารถ TDD API ที่ทดสอบได้ง่ายด้วยความรู้นั้น และนั่นจะช่วยให้คุณสร้างแอปได้เร็วยิ่งขึ้น

ทำให้ TDD ง่ายขึ้น

คุณสามารถใช้การทดสอบภายหลังเพื่อสร้างทักษะที่ช่วยให้คุณเรียนรู้ ทีดีดี. แต่คุณยังต้องการส่วน TDD ของแอปของคุณในที่สุด และมีวิธีง่ายๆ ในการลดความยุ่งยากใน TDD และยังคงใช้โค้ดที่มีอยู่:เขียนการทดสอบการถดถอย

การทดสอบการถดถอยช่วยให้คุณไม่ทำลายรหัสที่คุณแก้ไขแล้ว ความคิดนั้นค่อนข้างง่าย เมื่อใดก็ตามที่คุณได้ยินเกี่ยวกับข้อบกพร่อง แทนที่จะคลิกไปรอบๆ ในเบราว์เซอร์เพื่อทำซ้ำ:

  • เขียนการทดสอบที่ล้มเหลว เพื่อทำซ้ำจุดบกพร่อง
  • ทำการทดสอบ และตรวจสอบให้แน่ใจว่าล้มเหลว (เพราะข้อผิดพลาดนั้นยังคงอยู่)
  • แก้ไขข้อผิดพลาด ด้วยวิธีที่ง่ายที่สุด
  • ทำการทดสอบ และตรวจสอบให้แน่ใจว่าผ่าน
  • รีแฟกเตอร์ การแก้ไขของคุณ หากจำเป็น

ซึ่งง่ายกว่า TDDing ระบบใหม่ตั้งแต่เริ่มต้นมาก เพราะคุณแค่กำลังทดสอบการเปลี่ยนแปลงโค้ดที่มีอยู่แล้ว คุณสร้างนิสัยของ “แดง เขียว รีแฟคเตอร์” ที่เป็นวงจรสำคัญของ TDD และจากที่นี่ TDD อยู่ไกลกว่าการพยายามตรงไปยัง TDD โดยไม่ต้องทำการทดสอบ

จากไม่มีอะไรเป็น TDD

แอปที่ไม่มีการทดสอบไม่ใช่จุดเริ่มต้นที่ไม่ดี เมื่อคุณทดสอบโค้ดที่มีอยู่ คุณจะได้เรียนรู้หลายอย่างที่จำเป็นในการเขียนการทดสอบ TDD ที่ดี การทดสอบภายหลังนั้นง่ายกว่า TDD ในตอนแรก เพราะคุณไม่จำเป็นต้องจินตนาการถึง API ที่คุณยังไม่รู้วิธีออกแบบ และเมื่อคุณตัดสินใจนำ TDD มาไว้ในแอปของคุณแล้ว คุณก็จะง่ายขึ้นด้วยการทดสอบการถดถอย

ดังนั้น หากคุณไม่ทราบวิธี TDD ระบบที่คุณจินตนาการไว้ ให้เขียนแบบทดสอบต่อไป แม้ว่าจะต้องเขียนโค้ดก่อนก็ตาม