ฉันเคยใช้ Java มาก่อนและฉันสามารถทำอะไรก็ได้กับ Eclipse ตอนนี้เนื่องจากฉันต้องการใช้ Delphi เพื่อแก้ไขซอฟต์แวร์การส่งข้อความแบบทันทีฉันสงสัยว่าจะย้ายระบบการสร้างใหม่และการทดสอบหน่วยไปยัง Delphi ได้อย่างไร หนังสือเล่มนี้บอกว่าการเพิ่มการทดสอบหน่วยลงในรหัสที่มีอยู่สามารถทำให้ความเข้าใจของคุณเกี่ยวกับรหัสและทำหน้าที่เป็นพื้นฐานสำหรับการปรับปรุงรหัส ดังนั้นเพื่อที่จะสร้างแพลตฟอร์มที่คล่องตัวฉันได้พยายามเล็กน้อยกับ Delphi2005 และ Dunit และบันทึกผลลัพธ์ด้านล่างเพื่อแบ่งปันกับคุณ
1. ดาวน์โหลด delphi2005
เนื่องจากบอร์แลนด์ไม่ได้ขายเวอร์ชั่นมืออาชีพในประเทศจีนเนื่องจากราคาสูงของสถาปนิกและเวอร์ชันองค์กรจึงสามารถดาวน์โหลดเวอร์ชั่น D จากอินเทอร์เน็ตเพื่อการใช้งานส่วนตัวได้เท่านั้น DELPHI2005 มีขนาดค่อนข้างใหญ่และ UPDATE1 ยังต้องการซีดีดังนั้นจึงขอแนะนำให้ใช้ BT เพื่อดาวน์โหลดรุ่น 2CD ที่อยู่เมล็ดมีดังนี้:
http://www.delphhifans.com/softview/821.html
2. ดาวน์โหลด SP1 ของ Delphi2005
ว่ากันว่าหลังจากใช้แพตช์นี้แล้วมันจะเร็วขึ้น แต่แพตช์นั้นติดตั้งช้าและคุณยังต้องใช้ซีดี ที่อยู่ดาวน์โหลดมีดังนี้:
http://www.delphhifans.com/softview/970.html
3. ดาวน์โหลด Dunit
https://sourceforge.net/projects/dunit/
4. ติดตั้ง Delphi2005+SP1
โปรดทราบว่ามีการลงทะเบียนใน KeyGen และเมื่อติดตั้งคุณต้องติดตั้ง Delphi รุ่น. NET และ Win32 ในเวลาเดียวกัน แต่ C# Builder ไม่สำคัญ เพราะถ้าคุณติดตั้งเวอร์ชัน Win32 เท่านั้นฟังก์ชั่นการสร้างใหม่จะไม่สามารถใช้งานได้ (นี่คือข้อผิดพลาดใน Delphi2005 ซึ่งเป็นที่ประจักษ์เป็นหน้าต่างยกเว้นของ. NET เมื่อ refactoring)
5. ทำให้ Delphi2005 ง่ายขึ้น
เนื่องจากมีการติดตั้งรุ่น. NET ในเวลาเดียวกันในขั้นตอนก่อนหน้า Delphi จึงช้ามากเมื่อเริ่มต้น สิ่งนี้สามารถทำได้โดยการปรับเปลี่ยนรีจิสทรีและลบแพ็คเกจ IDE บางส่วน วิธีการเฉพาะคือการเพิ่มพารามิเตอร์ -rxxx หลังจากเป้าหมายทางลัด Delphi นั่นคือ bds.exe -rxxx XXX นี้มีไว้สำหรับคุณที่จะระบุและจากนั้นคุณจะพบแพ็คเกจแช่งเหล่านั้นใน hkey_current_user/ซอฟต์แวร์/borland/xxx (นี่คือชื่อที่คุณเลือก XXX) /3.0/NOWN IDE แพ็คเกจ IDE โปรดทราบว่าคุณไม่สามารถลบได้อย่างหมดจดเช่นเดียวกับโมเลกุลที่บริสุทธิ์ Win32 อื่น ๆ บนอินเทอร์เน็ตเนื่องจากมันจะไร้ประโยชน์สำหรับการสร้างใหม่ รายการที่ค่อนข้างง่ายที่ฉันได้รับหลังจากทดลองหลายครั้งมีดังนี้
"$ (bds) // bin // vclmenudesigner90.bpl" = "(ไม่มีชื่อ)"
"$ (bds) // bin // win32debugproide90.bpl" = "(ไม่มีชื่อ)"
"$ (bds) // bin // htmide90.bpl" = "แพ็คเกจดีไซเนอร์ html"
"$ (bds) // bin // iteidew3290.bpl" = "สภาพแวดล้อมการแปลแบบบูรณาการ Borland สำหรับ Win32"
"$ (bds) // bin // srcmanide90.bpl" = "(ไม่มีชื่อ)"
"$ (bds) // bin // toDoide90.bpl" = "Borland Todo"
"$ (bds) // bin // htmlhelp290.bpl" = "Borland Htmlhelp Viewer"
"$ (bds) // bin // idefilefilters90.bpl" = "ide filefilters"
"$ (bds) // bin // startpageide90.bpl" = "แพ็คเกจเริ่มต้น Borland"
"$ (bds) // bin // refactoride90.bpl" = "แพ็คเกจ Refactoring Borland Core"
"$ (bds) // bin // dbkdebugide90.bpl" = "(ไม่มีชื่อ)"
"$ (bds) // bin // exceptiondiag90.bpl" = "(ไม่มีชื่อ)"
"$ (bds) // bin // deployide90.bpl" = "ผู้จัดการการปรับใช้"
"$ (bds) // bin // plugview90.bpl" = "แพ็คเกจมุมมองต้นไม้ที่สามารถทำได้"
"$ (bds) // bin // coreproide90.bpl" = "แพ็คเกจ Core IDE Pro"
"$ (bds) // bin // idetools90.bpl" = "build tools"
"$ (bds) // bin // unitstide90.bpl" = "(ไม่มีชื่อ)"
"$ (bds) // bin // historyide90.bpl" = "(ไม่มีชื่อ)"
"$ (bds) // bin // htmltidy90.bpl" = "html tidy formatter"
"$ (bds) // bin // htmlfmt90.bpl" = "html ภายใน formatter"
"$ (bds) // bin // mlcc90.bpl" = "แพ็คเกจการทำรหัสภาษามาร์กอัป"
"$ (bds) // bin // delphivclide90.bpl" = "แพ็คเกจ Delphi VCL Designer IDE"
"$ (bds) // bin // delphicoreproide90.bpl" = "(ไม่มีชื่อ)"
"$ (bds) // bin // win32debugide90.bpl" = "(ไม่มีชื่อ)"
"$ (bds) // bin // htmlide90.bpl" = "(ไม่มีชื่อ)"
"$ (bds) // bin // delphide90.bpl" = "Delphi Win32 IDE บุคลิกภาพ"
"$ (bds) // bin // mtspro90.bpl" = "(ไม่มีชื่อ)"
"$ (bds) // bin // mtsent90.bpl" = "(ไม่มีชื่อ)"
"$ (bds) // bin // iteidenet90.bpl" = "สภาพแวดล้อมการแปลแบบบูรณาการ Borland สำหรับ. NET"
"$ (bds) // bin // netimportwiz90.bpl" = "(ไม่มีชื่อ)"
"$ (bds) // bin // dataexplorer90.bpl" = "(ไม่มีชื่อ)"
แม้ว่ามันจะเริ่มช้าไปหน่อย แต่ในที่สุดก็สามารถแบกรับมันได้
6. รวบรวมและติดตั้ง Dunit
ใช้วิธีการที่คุณรู้เพื่อรวบรวม Dunit ลงใน DCU และใส่ลงในไดเรกทอรีที่คุณระบุ และเพิ่มไดเรกทอรีนี้ไปยังเส้นทางไลบรารีของเครื่องมือ Delphi-> ตัวเลือกสภาพแวดล้อม-> ตัวเลือก Delphi-> Library-win32
ยังรวบรวม dunit.exe
7. สร้างโครงการ
วิธีที่ฉันแนะนำคือการแยกอินเทอร์เฟซและพื้นหลังเมื่อเขียนโปรแกรม Delphi โดยเฉพาะเพื่อเปิดสองโครงการหนึ่งโครงการ VCL ธรรมดาหนึ่งโครงการและโครงการ DLL อื่น ๆ ไม่ไม่ฉันไม่ได้ตั้งใจที่จะให้คุณแบ่งปันรหัสใน DLL โครงการ DLL นี้มีไฟล์ที่เป็นเนื้อหาพื้นหลังทั้งหมดรวมถึงการทดสอบบนพื้นหลัง DLL ที่สร้างขึ้นนั้นใช้สำหรับ Dunit ซึ่ง Dunit สามารถอ่านการทดสอบและเรียกใช้ได้ ในความเป็นจริงโครงการในส่วน GUI มีไฟล์ทั้งหมด
โครงการแบ่งออกเป็นสามส่วน: GUI, CORE และ TESTCORE Project One รวมถึง GUI+CORE และโครงการที่สองรวมถึง Core+TestCore ผลลัพธ์ของโครงการ 1 คือโปรแกรม Win32exe ผลลัพธ์ที่สองของโครงการคือโปรแกรม Win32DLL
จากนั้นคุณสามารถนำสองโครงการนี้ลงในกลุ่มโครงการ
8. การทดสอบเขียน
โครงการที่ 1 ไม่แตกต่างจากการเขียนโปรแกรม DEPHI การทดสอบเขียนเป็นวิศวกรรมหมายเลข 2 และฉันเรียกชื่อของวิศวกรรมหมายเลข 2 หลัก มาเพิ่มการทดสอบพื้นฐานลงใน Core เพื่อตรวจสอบว่า 1+1 เท่ากับ 2
สร้าง testcase
หน่วยทดสอบ
ส่วนต่อประสาน
ใช้
Testframework;
พิมพ์
tbasic = คลาส
สาธารณะ
ฟังก์ชั่นเพิ่ม (a, b: จำนวนเต็ม): จำนวนเต็ม;
จบ;
ttestbasic = คลาส (ttestcase)
ส่วนตัว
fbasic: tbasic;
สาธารณะ
การตั้งค่าขั้นตอน;
ขั้นตอนการฉีกขาด;
ที่ตีพิมพ์
ขั้นตอน testadd;
จบ;
การดำเนินการ
ฟังก์ชั่น tbasic.add (a, b: จำนวนเต็ม): จำนวนเต็ม;
เริ่ม
ผลลัพธ์: = A + B;
จบ;
ขั้นตอน ttestbasic.setup;
เริ่ม
fbasic: = tbasic.create;
จบ;
ขั้นตอน ttestbasic.teardown;
เริ่ม
fbasic.free;
จบ;
ขั้นตอน ttestbasic.testadd;
เริ่ม
checkequals (2, fbasic.add (1, 1));
จบ;
การเริ่มต้น
registertest ('', ttestbasic.suite);
จบ.
แก้ไข core.bdsproj (kao คำต่อท้ายแปลก ๆ )
การเปลี่ยนแปลงเริ่มต้น
การส่งออก
registeredtests ชื่อ 'ทดสอบ';
จบ.
และเพิ่ม TestFramework ในส่วนการใช้งาน
Dunit ใช้ฟังก์ชั่นการส่งออกนี้เพื่อค้นหา testcase ที่เราลงทะเบียนใน DLL
9. เรียกใช้ Dunit
เพิ่ม Dunit ลงในเมนูเครื่องมือมันสะดวกกว่ามาก เป็นเพียงว่าพารามิเตอร์นั้นยากที่จะกรอก ฉันไม่ได้ใช้แมโครภายในฉันเพิ่งเติมในเส้นทางที่สมบูรณ์ หากคุณกรอกข้อมูลในเส้นทางที่แน่นอนเช่นฉันเลือก Dunit จากเมนูเครื่องมือและคุณสามารถดูรายการทดสอบได้โดยตรง
หากคุณไม่ได้เพิ่ม Dunit ในเมนูเครื่องมือคุณต้องค้นหา DLL ที่รวบรวมจากโครงการ Core Core.dll จากหน้าต่างการเลือกไฟล์ของ File-> Load Test Test
-
จนถึงตอนนี้มีทั้งฟังก์ชั่น refactoring และการทดสอบหน่วย สิ่งที่เหลืออยู่คือการเพิ่มการทดสอบลงในรหัสที่มีอยู่แล้วค่อยๆปรับแต่งใหม่