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