เมื่อมีการเปลี่ยนแปลงรหัสสำคัญ (ชุด POJO ใหม่การปรับโครงสร้างแอปพลิเคชันหลัก ฯลฯ ) การทดสอบหน่วยมักจะถูกใส่ความคิดเห็นแทนการทำใหม่
ฉันพยายามปรับโครงสร้างและการเปลี่ยนแปลงการทำงานแยกกันอยู่เสมอ เมื่อฉันต้องทำทั้งสองอย่างฉันมักจะทำ refactoring ก่อน
เมื่อเปลี่ยนรหัสใหม่โดยไม่เปลี่ยนฟังก์ชั่นการทดสอบยูนิตที่มีอยู่แล้วควรช่วยให้มั่นใจว่าการปรับโครงสร้างใหม่จะไม่ทำลายฟังก์ชันการทำงานโดยไม่ตั้งใจ ดังนั้นสำหรับการกระทำดังกล่าวฉันจะพิจารณาปิดการใช้งานหรือลบการทดสอบหน่วยเป็นสัญญาณเตือนที่สำคัญ นักพัฒนาซอฟต์แวร์ใด ๆ ที่ทำมันควรได้รับแจ้งว่าจะไม่ทำเช่นนั้นเมื่อมีการตรวจสอบโค้ด
เป็นไปได้ว่าการเปลี่ยนแปลงที่ไม่เปลี่ยนฟังก์ชั่นยังคงทำให้การทดสอบหน่วยล้มเหลวเนื่องจากการทดสอบหน่วยมีข้อบกพร่อง หากคุณเข้าใจรหัสที่คุณกำลังเปลี่ยนแปลงสาเหตุของความล้มเหลวในการทดสอบหน่วยมักจะชัดเจนและแก้ไขได้ง่าย
ตัวอย่างเช่นถ้าฟังก์ชั่นใช้เวลาสามข้อโต้แย้งการทดสอบหน่วยที่ครอบคลุมการโต้ตอบระหว่างสองข้อโต้แย้งแรกสำหรับฟังก์ชั่นอาจไม่ได้รับการดูแลเพื่อให้ค่าที่ถูกต้องสำหรับอาร์กิวเมนต์ที่สาม ข้อบกพร่องในการทดสอบหน่วยอาจได้รับการเปิดเผยโดยการปรับเปลี่ยนรหัสที่ทดสอบ แต่ง่ายต่อการแก้ไขหากคุณเข้าใจว่ารหัสควรทำอะไรและการทดสอบหน่วยคืออะไร
เมื่อเปลี่ยนฟังก์ชั่นที่มีอยู่มักจะจำเป็นต้องเปลี่ยนการทดสอบหน่วย ในกรณีนี้การทดสอบหน่วยช่วยให้แน่ใจว่ารหัสของคุณเปลี่ยนการทำงานตามที่ตั้งใจไว้และไม่มีผลข้างเคียงโดยไม่ได้ตั้งใจ
เมื่อแก้ไขข้อบกพร่องหรือเพิ่มฟังก์ชั่นใหม่มักจะต้องเพิ่มการทดสอบหน่วยเพิ่มเติม สำหรับสิ่งเหล่านั้นจะมีประโยชน์ในการทำการทดสอบหน่วยก่อนและคอมมิชชันแก้ไขบั๊กหรือฟังก์ชั่นใหม่ในภายหลัง ซึ่งทำให้ง่ายต่อการตรวจสอบว่าการทดสอบหน่วยใหม่ไม่ได้ส่งผ่านด้วยรหัสเก่า แต่ส่งผ่านด้วยรหัสที่ใหม่กว่า วิธีการนี้ไม่ได้ทั้งหมดโดยไม่มีข้อเสียดังนั้นจึงมีข้อโต้แย้งอยู่ในความโปรดปรานของการกระทำทั้งการทดสอบหน่วยใหม่และการปรับปรุงรหัสพร้อมกัน
เวลาที่ใช้ในการทดสอบแบบบูรณาการที่ดีขึ้นนั้นครอบคลุมถึงกรณีการใช้งานซึ่งทำให้การทดสอบที่มีขอบเขตน้อยลงมีความสำคัญน้อยลง
มีองค์ประกอบของความจริงนี้ หากคุณสามารถรับความครอบคลุมของเลเยอร์ด้านล่างของสแต็กซอฟต์แวร์ด้วยการทดสอบที่กำหนดเป้าหมายเลเยอร์ที่สูงขึ้นของซอฟต์แวร์สแต็คการทดสอบของคุณอาจมีประโยชน์มากขึ้นเมื่อทำการเปลี่ยนรหัสอีกครั้ง
ฉันไม่คิดว่าคุณจะพบข้อตกลงเกี่ยวกับความแตกต่างที่แน่นอนระหว่างการทดสอบหน่วยและการทดสอบการรวม และฉันจะไม่ต้องกังวลหากคุณมีกรณีทดสอบที่นักพัฒนารายหนึ่งเรียกการทดสอบหน่วยและอีกคนหนึ่งเรียกว่าการทดสอบการรวมกันตราบใดที่พวกเขาสามารถยอมรับว่าเป็นกรณีทดสอบที่มีประโยชน์