โครงการจริงแสดงให้ฉันเห็นว่ามันเป็นไปไม่ได้ที่จะเขียนการทดสอบหน่วยและจากนั้นการบูรณาการและแม้แต่ทิศทางที่ตรงข้ามเป็นสิ่งที่ผิด :-) ดังนั้นฉันมักจะเขียนการทดสอบหน่วยพร้อมกับการรวมหน่วย
ทำไม? ให้ฉันเขียนว่าฉันเห็นการทดสอบทั้งสองประเภทอย่างไร:
การทดสอบหน่วย - นอกเหนือจาก Wikipedia และข้อมูลทั้งหมดการทดสอบหน่วยช่วยให้คุณจำกัด การออกแบบปรับปรุงโมเดลความสัมพันธ์ของคุณ การไหลง่าย: เมื่อคุณเริ่มพิมพ์โครงการใหม่ / องค์ประกอบใหม่ส่วนใหญ่เวลาที่คุณกำลังทำชนิดของPoC เมื่อคุณทำเสร็จแล้วคุณมักจะมีวิธีการยาวเรียนยาววิธีที่ไม่สอดคล้องกันและชั้นเรียน ฯลฯ
การทดสอบหน่วยช่วยคุณในการลบปัญหาเหล่านี้เมื่อคุณทำการทดสอบหน่วยจริงโดยใช้คลาส mocks (โดยไม่ต้องพึ่งพาส่วนประกอบอื่น ๆ ) ที่อธิบายไว้ข้างต้นไม่สามารถทดสอบได้ สัญญาณพื้นฐานของรหัสที่ไม่สามารถทดสอบได้เป็นส่วนใหญ่ในการทดสอบเนื่องจากคุณถูกบังคับให้ต้องจำลองการขึ้นต่อกันหลายครั้ง (หรือสถานการณ์)
การทดสอบการรวมระบบ - การทดสอบที่ถูกต้องและใช้งานได้บอกกับคุณว่าองค์ประกอบใหม่ (หรือส่วนประกอบ) ของคุณทำงานร่วมกันหรือกับส่วนประกอบอื่น ๆ - นี่เป็นคำจำกัดความตามปกติ ฉันพบว่าการทดสอบการรวมส่วนใหญ่ช่วยให้คุณสามารถกำหนดไหลวิธีการใช้คอมโพเนนต์ของคุณจากด้านของผู้บริโภค
นี่เป็นเรื่องสำคัญอย่างยิ่งที่บางครั้งมันบอกกับคุณว่า API ของคุณไม่สมเหตุสมผล
จะเกิดอะไรขึ้นถ้าฉันเขียนการทดสอบหน่วยและการทดสอบการรวมเข้าด้วยกันในภายหลัง
ฉันได้รับชั้นเรียนที่ดีการออกแบบที่ชัดเจนตัวสร้างที่ดีวิธีการที่สั้นและสอดคล้องกัน IoC พร้อม ฯลฯ เมื่อฉันให้คลาส / API แก่ผู้บริโภคบางส่วนเช่นนักพัฒนาจากการรวมหรือทีม GUI เขาไม่สามารถใช้ API ของฉันได้ แปลก ๆ เขาเพิ่งสับสน ดังนั้นฉันจึงซ่อมแซม API ตามมุมมองของเขา แต่มันก็จำเป็นต้องเขียนการทดสอบอีกหลายครั้งเพราะฉันถูกผลักให้เปลี่ยนวิธีการและบางครั้งแม้แต่การไหลของวิธีการใช้ API
จะเกิดอะไรขึ้นถ้าฉันเขียนการทดสอบการรวมและการทดสอบหน่วยในภายหลัง
ฉันมีการไหลที่แน่นอนใช้งานได้ดี สิ่งที่ฉันมีคือชั้นเรียนขนาดใหญ่รหัสไม่ต่อเนื่องไม่มีการบันทึกวิธีการที่ยาว รหัสสปาเก็ตตี้
คำแนะนำของฉันคืออะไร
ฉันได้เรียนรู้การไหลต่อไปนี้:
- พัฒนาโครงกระดูกพื้นฐานของรหัสของคุณ
- เขียนการทดสอบการรวมระบบที่บอกว่าเหมาะสมหรือไม่จากมุมมองของผู้บริโภค กรณีการใช้งานเบื้องต้นก็เพียงพอแล้วสำหรับตอนนี้ เห็นได้ชัดว่าการทดสอบใช้งานไม่ได้
- เขียนโค้ดพร้อมกับการทดสอบหน่วยสำหรับแต่ละชั้นเรียน
- เขียนส่วนที่เหลือ / ขาดการทดสอบการรวม จะเป็นการดีกว่าที่จะใช้การทดสอบเหล่านี้ภายใน # 3 วิธีที่คุณปรับปรุงรหัสของคุณ
โปรดทราบว่าฉันได้ทำการนำเสนอเล็กน้อยเกี่ยวกับการทดสอบหน่วย / การรวมเข้าด้วยกันให้ดูที่สไลด์ # 21 ซึ่งมีการอธิบายโครงกระดูก