ฉันสามารถตรวจสอบการมีอยู่ของคำอธิบายประกอบในการทดสอบหน่วยได้หรือไม่?


9

ฉันมีลำดับชั้นคลาส Java ที่เกิดขึ้นจากชั้นนามธรรมและส่วนขยาย N ของมัน ในคลาส abstract ฉันมีเมธอดที่ถูกเพิ่มความคิดเห็นด้วยหมายเหตุประกอบ @Remove แม้ว่าเราจะไม่ได้รับข้อยกเว้นใด ๆ ที่จะไม่ล้มเหลวหากลบหมายเหตุนี้เราอาจได้รับการยกเว้นหน่วยความจำดังนั้นฉันจึงต้องการให้แน่ใจว่าเราสังเกตเห็นอย่างรวดเร็วที่สุดหากคำอธิบายประกอบนี้หายไปในการซ่อมแซมบางส่วน

ฉันกำลังพยายามสร้าง GUTS (การทดสอบหน่วยที่ดี) ดังนั้นฉันคิดว่าฉันสามารถจัดทำเอกสาร "ข้อกำหนดทางเทคนิค" นี้ในการทดสอบของฉันพร้อมกรณีทดสอบที่ระบุไว้

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

การสร้างแบบทดสอบสำหรับสิ่งนั้นหรือมีวิธีอื่นในการตรวจสอบการมีอยู่ของคำอธิบายประกอบนี้หรือไม่?


1
คุณถามว่าจะทำอย่างไรหรือว่าเป็นการฝึกวิศวกรรมซอฟต์แวร์ที่ดีหรือไม่? คำตอบสำหรับหลังคือใช่ การทดสอบจะตรวจสอบคุณภาพของรหัสฐานของคุณ พวกเขาไม่จำเป็นต้องตรวจสอบพฤติกรรมในปัจจุบัน เป็นเรื่องที่ดีมากที่จะมีการทดสอบที่ตรวจสอบสภาพที่ตั้งใจจะส่งเสริมพฤติกรรมที่ดีในอนาคต
Kilian Foth

คำตอบ:


5

ใช่สร้างการทดสอบหน่วย คุณกำลังบอกว่าถ้าลบคำอธิบายประกอบแล้วคุณสามารถออกจากหน่วยความจำบกพร่องในการผลิต นั่นจะเป็นข้อผิดพลาดนักฆ่า การปล่อยให้สิ่งนี้เกิดขึ้นเนื่องจากความคิดที่ว่าการทดสอบที่มีข้อ จำกัด อย่างใดอย่างหนึ่งนั้นมีประสิทธิผล การทดสอบควรตรวจสอบความถูกต้องในทุกประสาทสัมผัส ยิ่งคุณตรวจพบปัญหาที่เป็นไปได้เร็วเท่าไหร่ก็ยิ่งดีเท่านั้นดังนั้นการทดสอบหน่วยและการสร้าง CI ที่ล้มเหลวเป็นวิธีที่มั่นคงในการป้องกันข้อผิดพลาด การพยายามคิดค้นกลไกอื่นเพื่อป้องกันการนำข้อผิดพลาดดังกล่าวดูเหมือนจะไม่คุ้มค่าในขณะที่ นักพัฒนาใหม่ทุกคนจะต้องได้รับคำอธิบายเกี่ยวกับวิธีจัดการ "กรณีพิเศษ" ของการทดสอบความถูกต้องของการใช้งานที่ไม่มี นั่นน่าจะไม่ใช่การใช้เวลาของนักพัฒนา

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


2

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


Hi! สิ่งนี้น่าสนใจคุณจะตรวจสอบพฤติกรรมของคำอธิบายประกอบ @remove ได้อย่างไร
JSBach

น่าเสียดายที่ฉันไม่คุ้นเคยกับ EJB เพียงพอที่จะตอบคำถามนี้ - ฉันมักจะหลีกเลี่ยงการทำงานกับเทคโนโลยีอย่างแม่นยำเพราะฉันพบว่ามันยากที่จะเขียนแบบทดสอบที่ดี
จูลส์

แนวคิดของคำอธิบายประกอบนี้คือมันบอกคอนเทนเนอร์ว่าสามารถลบถั่วได้ เป็นเรื่องยากที่จะทดสอบพฤติกรรมนี้ :(
JSBach
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.