เป็นที่พึงปรารถนาที่จะลบb()
เมื่อไม่ได้ใช้งานอีกต่อไปด้วยเหตุผลเดียวกันกับที่ต้องการไม่เพิ่มฟังก์ชั่นที่ไม่ได้ใช้ในตอนแรก ไม่ว่าคุณจะเรียกมันว่า "ความสามารถในการอ่าน" หรืออย่างอื่นสิ่งอื่น ๆ ที่เท่าเทียมกันคือการปรับปรุงโค้ดที่ไม่มีสิ่งใดที่ไม่ได้ใช้ เพื่อประโยชน์ในการมีมาตรการเฉพาะอย่างน้อยหนึ่งมาตรการที่ดีกว่าที่จะไม่ใช้มาตรการนั้นการลบออกเป็นการรับประกันว่าต้นทุนการบำรุงรักษาในอนาคตหลังจากการเปลี่ยนแปลงนั้นเป็นศูนย์!
ฉันไม่พบเทคนิคพิเศษใด ๆ ที่จำเป็นสำหรับการลบออกจริง ๆ ด้วยการทดสอบเนื่องจากความคิดใด ๆ ที่จะแทนที่b()
ด้วยสิ่งใหม่ที่แน่นอนจะต้องมาพร้อมกับการพิจารณาทุกรหัสที่กำลังเรียกในขณะนี้b()
และการทดสอบเป็นส่วนย่อยของ "รหัสทั้งหมด "
บรรทัดของเหตุผลที่มักทำงานสำหรับฉันก็คือจุดที่ผมสังเกตเห็นว่าf()
ได้ทำb()
ล้าสมัยจึงb()
ควรจะได้รับอย่างน้อยเลิกและฉันกำลังมองหาที่จะหาสายทั้งหมดไปb()
ด้วยความตั้งใจของการแทนที่พวกเขาด้วยการเรียกไปf()
, ฉัน พิจารณายังรหัสการทดสอบ โดยเฉพาะถ้าb()
ไม่ต้องการอีกต่อไปฉันสามารถและควรลบการทดสอบหน่วย
คุณค่อนข้างถูกต้องที่ไม่มีอะไรบังคับให้ฉันสังเกตเห็นว่าb()
ไม่จำเป็นอีกต่อไป นั่นเป็นเรื่องของทักษะ (และอย่างที่บอกกันว่ารายงานการครอบคลุมโค้ดเกี่ยวกับการทดสอบระดับสูงขึ้น) ถ้าเพียงแค่การทดสอบหน่วยและไม่มีการทดสอบการใช้งานอ้างอิงถึงb()
ฉันก็สามารถมองโลกในแง่ดีอย่างระมัดระวังว่ามันไม่ได้เป็นส่วนหนึ่งของอินเทอร์เฟซที่เผยแพร่ดังนั้นการลบมันไม่ใช่การเปลี่ยนแปลงที่ไม่สมบูรณ์สำหรับรหัสใด ๆ
วัฏจักรแดง / เขียว / refactor ไม่ได้กล่าวถึงการลบอย่างชัดเจน นอกจากนี้การลบb()
ฝ่าฝืนเปิด / ปิดหลักการตั้งแต่อย่างชัดเจนคอมโพเนนต์ของคุณคือเปิดให้บริการสำหรับการปรับเปลี่ยน ดังนั้นหากคุณต้องการคิดว่าขั้นตอนนี้เป็นสิ่งที่อยู่นอก TDD ง่าย ๆ ไปข้างหน้า ตัวอย่างเช่นคุณอาจมีกระบวนการในการประกาศการทดสอบ "ไม่ดี" ซึ่งสามารถนำไปใช้ในกรณีนี้เพื่อลบการทดสอบโดยอ้างว่าเป็นการทดสอบสิ่งที่ไม่ควรมี (ฟังก์ชั่นที่ไม่จำเป็นb()
)
ฉันคิดว่าในทางปฏิบัติแล้วคนส่วนใหญ่อาจยอมให้มีการออกแบบใหม่จำนวนหนึ่งพร้อมกับรอบสีแดง / เขียว / refactor หรือพวกเขาพิจารณาที่จะลบการทดสอบหน่วยซ้ำซ้อนเพื่อให้เป็นส่วนที่ถูกต้องของ "refactor" แม้ว่าจะพูดอย่างเคร่งครัด มันไม่ได้เปลี่ยนโครงสร้าง ทีมของคุณสามารถตัดสินใจได้ว่าละครและเอกสารควรมีส่วนร่วมในการตัดสินการตัดสินใจครั้งนี้มากเพียงใด
อย่างไรก็ตามหากb()
มีความสำคัญก็จะมีการทดสอบการทำงานและสิ่งเหล่านั้นจะไม่ถูกลบออกอย่างเบาบาง แต่คุณได้บอกไปแล้วว่ามีเพียงการทดสอบหน่วย หากคุณไม่ได้แยกความแตกต่างระหว่างการทดสอบหน่วย (เขียนถึงการออกแบบภายในปัจจุบันของรหัสที่คุณเปลี่ยนแปลง) และการทดสอบการใช้งาน (เขียนไปยังอินเทอร์เฟซที่เผยแพร่ซึ่งบางทีคุณอาจไม่ต้องการเปลี่ยนแปลง) ดังนั้นคุณต้องระมัดระวังมากขึ้น เกี่ยวกับการลบการทดสอบหน่วย