ฉันต้องการแนะนำแนวคิดของการทดสอบหน่วย (และการทดสอบทั่วไป) กับเพื่อนร่วมงานของฉัน ตอนนี้ไม่มีการทดสอบเลยและสิ่งต่าง ๆ ถูกทดสอบโดยการปฏิบัติงานจริงผ่าน UI เพื่อดูผลลัพธ์ที่ต้องการ ดังที่คุณอาจจินตนาการได้ว่ารหัสนั้นมีความเชื่อมโยงอย่างแน่นแฟ้นกับการนำไปปฏิบัติที่แน่นอน - แม้จะทำให้เกิดโค้ดที่ควรอยู่ในคลาสและนำมาใช้ซ้ำในระบบที่ถูกคัดลอกและวางข้ามวิธีต่างๆ
เนื่องจากความต้องการที่เปลี่ยนแปลงไปฉันถูกขอให้แก้ไขโมดูลที่ฉันเขียนไว้ก่อนหน้านี้และนั่นคือการรวมกันอย่างหลวม ๆ (ไม่มากเท่าที่ฉันต้องการ แต่ที่ดีที่สุดที่ฉันสามารถทำได้โดยไม่ต้องแนะนำแนวคิดอื่น ๆ มากมาย) ฉันตัดสินใจที่จะรวมชุดการทดสอบหน่วยกับรหัสที่แก้ไขแล้วของฉันเพื่อ "พิสูจน์" ว่าทำงานได้ตามที่คาดไว้และแสดงให้เห็นว่าการทดสอบทำงานอย่างไร ฉันไม่ได้ติดตาม TDD จริงเนื่องจากมีการเขียนโค้ดบางส่วนแล้ว แต่ฉันหวังว่าจะทำตามแนวคิด TDD บางอย่างสำหรับรหัสใหม่ที่ฉันจะต้องสร้าง
ตอนนี้อย่างหลีกเลี่ยงไม่ได้ฉันแน่ใจว่าฉันจะถามว่าทำไมพาฉันมากกว่าหนึ่งหรือสองวันในการเขียนรหัสเนื่องจากส่วนหนึ่งของสิ่งที่ฉันจะโต้ตอบกับมีอยู่แล้วในระบบ (แม้ว่าจะไม่มีการทดสอบและแน่นมาก ประกอบ) และเมื่อฉันตรวจสอบรหัสในฉันจะถูกถามว่าโครงการ "การทดสอบ" นี้คืออะไร ฉันสามารถอธิบายพื้นฐานของการทดสอบได้ แต่ฉันไม่สามารถอธิบายถึงผลประโยชน์ที่แท้จริงในแบบที่คนอื่นจะเข้าใจได้ (เพราะพวกเขาคิดว่าการทดสอบต้องการให้คุณเรียกใช้แอปด้วยตัวเองเนื่องจากบ่อยครั้งที่ UI ที่แท้จริงมีความสำคัญ " หรือไม่). พวกเขาไม่เข้าใจความคิดที่จะมีเพศสัมพันธ์แบบหลวม ๆ (เห็นได้ชัดจากความจริงที่ว่าไม่มีอะไรที่เป็นคู่กันอย่างหลวม ๆ ไม่มีแม้แต่อินเตอร์เฟสใด ๆ นอกโค้ดที่ฉันเขียน) ดังนั้นการพยายามที่จะใช้สิ่งนั้นเพื่อเป็นผลประโยชน์อาจจะได้รับ "Huh?" ชนิดของรูปลักษณ์และอีกครั้งฉันไม่สามารถหลวมอย่างที่ฉันต้องการโดยไม่ต้องทำงานซ้ำหลายโมดูลที่มีอยู่และอาจแนะนำคอนเทนเนอร์ IoC บางชนิดซึ่งจะถูกมองว่าเป็นการเสียเวลาและไม่ใช่ "การเขียนโปรแกรม"
ไม่มีใครมีข้อเสนอแนะเกี่ยวกับวิธีที่ฉันสามารถชี้ไปที่รหัสนี้และพูดว่า "เราควรเริ่มสร้างการทดสอบหน่วย" โดยไม่ต้องออกมาเหมือนเป็นการวางตัว (เช่น "การทดสอบการเขียนบังคับให้คุณเขียนรหัสที่ดี") ยกเว้นของฉันเสีย ) หรือไม่ทำให้ดูเหมือนว่าเป็นการเสียเวลาที่ไม่ได้เพิ่มคุณค่าที่แท้จริงใด ๆ