หากคุณกำลังจัดการกับรหัสดั้งเดิมจำนวนมากที่ไม่ได้อยู่ภายใต้การทดสอบในขณะนี้การได้รับความครอบคลุมการทดสอบแทนที่จะรอการเขียนซ้ำที่ยิ่งใหญ่ในอนาคตคือการย้ายที่ถูกต้อง เริ่มต้นด้วยการเขียนการทดสอบหน่วยไม่ได้
หากไม่มีการทดสอบอัตโนมัติหลังจากทำการเปลี่ยนแปลงโค้ดคุณต้องทำการทดสอบด้วยตนเองเพื่อสิ้นสุดการทดสอบแอพเพื่อให้แน่ใจว่ามันทำงานได้ เริ่มต้นด้วยการเขียนการทดสอบบูรณาการระดับสูงเพื่อแทนที่ หากแอปของคุณอ่านไฟล์ให้ตรวจสอบความถูกต้องประมวลผลข้อมูลในแบบและแสดงผลลัพธ์ที่คุณต้องการทดสอบที่จับภาพทั้งหมด
เป็นการดีที่คุณจะมีข้อมูลจากแผนการทดสอบด้วยตนเองหรือสามารถรับตัวอย่างข้อมูลการผลิตจริงที่จะใช้ หากไม่ใช่เพราะแอปที่กำลังใช้งานอยู่ในกรณีส่วนใหญ่มันทำในสิ่งที่ควรทำดังนั้นควรสร้างข้อมูลที่จะได้คะแนนสูงทั้งหมดและถือว่าผลลัพธ์ถูกต้องในตอนนี้ มันไม่เลวร้ายไปกว่าการใช้ฟังก์ชั่นเล็ก ๆ โดยสมมติว่าทำในสิ่งที่ชื่อหรือความคิดเห็นใด ๆ ที่แนะนำว่าควรทำและการเขียนการทดสอบสมมติว่ามันทำงานได้ถูกต้อง
IntegrationTestCase1()
{
var input = ReadDataFile("path\to\test\data\case1in.ext");
bool validInput = ValidateData(input);
Assert.IsTrue(validInput);
var processedData = ProcessData(input);
Assert.AreEqual(0, processedData.Errors.Count);
bool writeError = WriteFile(processedData, "temp\file.ext");
Assert.IsFalse(writeError);
bool filesAreEqual = CompareFiles("temp\file.ext", "path\to\test\data\case1out.ext");
Assert.IsTrue(filesAreEqual);
}
เมื่อคุณมีการทดสอบระดับสูงเหล่านี้เพียงพอที่จะเขียนเพื่อจับภาพการทำงานปกติของแอปและกรณีที่เกิดข้อผิดพลาดที่พบบ่อยที่สุดจำนวนเวลาที่คุณจะต้องใช้ในการทุบแป้นพิมพ์เพื่อลองและจับข้อผิดพลาดจากรหัส คุณคิดว่ามันควรจะทำลงไปอย่างมากทำให้การปรับโครงสร้างในอนาคต (หรือแม้แต่การเขียนครั้งใหญ่) ง่ายขึ้นมาก
ในขณะที่คุณสามารถขยายขอบเขตการทดสอบหน่วยคุณสามารถตัดลงหรือแม้แต่ออกจากการทดสอบการรวมส่วนใหญ่ หากไฟล์การอ่าน / เขียนของแอปของคุณหรือการเข้าถึงฐานข้อมูลทดสอบชิ้นส่วนเหล่านั้นแยกและเยาะเย้ยพวกเขาออกหรือให้การทดสอบของคุณเริ่มต้นด้วยการสร้างโครงสร้างข้อมูลที่อ่านจากไฟล์ / ฐานข้อมูลเป็นจุดเริ่มต้นที่ชัดเจน การสร้างโครงสร้างพื้นฐานการทดสอบจริงจะใช้เวลานานกว่าการเขียนชุดการทดสอบที่รวดเร็วและสกปรก และทุกครั้งที่คุณรันการทดสอบการรวมกลุ่ม 2 นาทีแทนที่จะใช้เวลา 30 นาทีในการทดสอบด้วยตนเองในส่วนของการทดสอบการรวมระบบที่ครอบคลุมว่าคุณได้รับชัยชนะไปแล้ว