ฉันค่อนข้างเริ่มต้นในการทดสอบโค้ดและเป็นassert
โสเภณีก่อนหน้านี้ สิ่งหนึ่งที่ทำให้ฉันกังวลในการทดสอบหน่วยคือบ่อยครั้งที่คุณต้องสร้างฟิลด์public
(หรืออย่างน้อยinternal
) ที่จะเป็นprivate
อย่างอื่นเพื่อยกเลิกการreadonly
สร้างprivate
วิธีการprotected virtual
แทน ฯลฯ
ฉันเพิ่งค้นพบว่าคุณสามารถหลีกเลี่ยงสิ่งนี้ได้โดยใช้สิ่งต่าง ๆ เช่นคลาสPrivateObjectเพื่อทำเครื่องหมายสิ่งต่าง ๆ ในวัตถุผ่านการสะท้อนกลับ แต่สิ่งนี้ทำให้การทดสอบของคุณบำรุงรักษาได้น้อยลง (สิ่งต่าง ๆ จะล้มเหลวในการดำเนินการมากกว่าการรวบรวมเวลามันจะถูกทำลายโดยการเปลี่ยนชื่อแบบง่ายยากที่จะทำการดีบั๊ก ... ) คุณมีความคิดเห็นอย่างไรกับเรื่องนี้? แนวปฏิบัติที่ดีที่สุดในการทดสอบหน่วยเกี่ยวกับการ จำกัด การเข้าถึงคืออะไร
แก้ไข: พิจารณาอินสแตนซ์ที่คุณมีคลาสที่มีแคชในไฟล์บนดิสก์และในการทดสอบของคุณคุณต้องการเขียนไปยังหน่วยความจำแทน