เฟรมเวิร์กใดที่มีอยู่สำหรับการทดสอบหน่วยรหัส Objective-C ฉันต้องการเฟรมเวิร์กที่รวมเข้ากับ Apple Xcode ได้ดี
เฟรมเวิร์กใดที่มีอยู่สำหรับการทดสอบหน่วยรหัส Objective-C ฉันต้องการเฟรมเวิร์กที่รวมเข้ากับ Apple Xcode ได้ดี
คำตอบ:
Xcode รวมถึง XCTest ซึ่งคล้ายกับOCUnitซึ่งเป็นกรอบการทดสอบหน่วย Objective-C และมีการสนับสนุนอย่างเต็มที่สำหรับการรันการทดสอบหน่วยที่ใช้ XCTest ซึ่งเป็นส่วนหนึ่งของกระบวนการสร้างโครงการของคุณ การสนับสนุนการทดสอบหน่วย Xcode ถูกอธิบายไว้ในภาพรวม Xcode: การใช้หน่วยทดสอบ
ย้อนกลับไปใน Xcode 2 วันฉันเขียนชุดของโพสต์เว็บบล็อกเกี่ยวกับวิธีการทำงานทั่วไปบางอย่างด้วยการทดสอบหน่วย Xcode:
แม้จะใช้ OCUnit มากกว่า XCTest แต่แนวคิดก็เหมือนกันมาก
ในที่สุดฉันก็เขียนบทความสองสามข้อเกี่ยวกับวิธีเขียนการทดสอบสำหรับส่วนต่อประสานผู้ใช้ของ Cocoa โครงสร้างของโกโก้ทำให้ค่อนข้างตรงไปตรงมาเพราะคุณไม่จำเป็นต้องหมุนวนเหตุการณ์หรืออะไรทำนองนั้นในกรณีส่วนใหญ่
สิ่งนี้ทำให้เป็นไปได้ที่จะทำการพัฒนาโดยใช้การทดสอบไม่ใช่แค่รหัสระดับแบบจำลองของคุณ แต่ยังรวมถึงตัวควบคุมระดับและรหัสระดับการดูด้วย
ตรวจสอบGHUnitโดย Gabriel Handford:
"เป้าหมายของ GHUnit คือ:
รันการทดสอบหน่วยภายใน XCode ช่วยให้คุณสามารถใช้ประโยชน์อย่างเต็มที่จากดีบักเกอร์ XCode GUI ที่ง่ายในการช่วยให้คุณเห็นภาพการทดสอบของคุณ แสดงร่องรอยสแต็ก สามารถติดตั้งเป็นกรอบ (สำหรับแอป Cocoa) ด้วยการตั้งค่าเป้าหมายอย่างง่าย (หรือไม่); หรือง่ายต่อการบรรจุลงในโครงการ iPhone ของคุณ "
ฉันเริ่มใช้อุปกรณ์ทดสอบกล่องเครื่องมือของ Google สำหรับ iPhone และมันใช้งานได้ดีสำหรับฉัน
โปรดทราบว่าโครงการ Google Toolbox for Mac (GTM) เพียงแค่ขยาย / เพิ่มกรอบ SenTestingKit ของ Apple (ซึ่งก็คือตัวเองขึ้นอยู่กับ OCUnit) อย่างที่พวกเขาพูดในเว็บไซต์โครงการ:
GTM มีการปรับปรุงหลายอย่างกับ SenTestingKit มาตรฐานซึ่งช่วยให้คุณทำการทดสอบหน่วย UI การทดสอบหน่วยผูกพันอัตโนมัติการติดตามบันทึกและการทดสอบหน่วยบน iPhone รวมถึงเครื่องมือสำหรับการทดสอบโค้ดแบบคงที่และไดนามิก
หมายเหตุความคิดเห็นต่อไปนี้เกี่ยวกับการทดสอบส่วนต่อประสานผู้ใช้:
GTM มีการสนับสนุนอย่างกว้างขวางสำหรับการทดสอบส่วนต่อประสานกับผู้ใช้ รองรับการทดสอบทั้งการถ่ายภาพและ / หรือสถานะภายในของวัตถุ Cocoa / UIKit UI มาตรฐานเกือบทั้งหมดและทำให้คุณสามารถขยายการสนับสนุนนี้ไปยังวัตถุ UI ของคุณเองได้อย่างง่ายดาย
ดูหน้า "การยืนยันรหัสและการทดสอบหน่วย " ของพวกเขาสำหรับคำแนะนำเกี่ยวกับวิธีการใช้งาน
ฉันได้ข้อสรุปว่า GHUnit เป็นกรอบการทดสอบขั้นสูงสุดสำหรับ Objective-C ฉันได้ทำบทสรุปของการทดสอบกรอบบนบล็อกของฉัน มันมีความยืดหยุ่นมากที่สุดในแง่ของการปรับใช้ (iphone, จำลองหรือ mac os ดั้งเดิม) และความสามารถในการยืนยัน เนื่องจากมันใช้ GTM จึงได้รับข้อดีทั้งหมดของ GTM เหนือ SenTestingKit แต่ยังเพิ่มมากขึ้นอีกมาก โบนัสอีกอย่างก็คือมันถูกเก็บรักษาไว้อย่างแข็งขัน
ฉันได้พยายามรวมOCMockเข้ากับ GHUnit แล้วมันใช้งานได้ดีมาก! คุณจะได้รับรหัสบนGitHub
ฉันรู้ว่านี่เป็นคำถามเก่า แต่ถ้าคุณชอบการทดสอบแบบ BDD (rspec, Jasmine ฯลฯ ) มากกว่าการทดสอบแบบ xUnit (ทดสอบ :: หน่วย, JSUnit, JUnit ฯลฯ ) คุณอาจพิจารณาตรวจสอบCedar . Cedar นำการทดสอบในรูปแบบ BDD มาสู่ Objective-C ซึ่งขณะนี้ภาษารองรับการปิด
เราใช้ Cedar อย่างมีความสุขสำหรับโครงการ iOS ของเราที่Pivotal Labsและเรากำลังดำเนินการปรับปรุงอย่างจริงจัง ความคิดเห็นหรือข้อเสนอแนะใด ๆ ยินดีต้อนรับที่ cedar-discuss@googlegroups.com
ฉันแนะนำ gh-unit แต่ก็มี GUI ที่ดีสำหรับผลการทดสอบ
สนับสนุนหน่วยทดสอบรวมภายใน Xcode (สำหรับการติดตั้งง่าย) ร่วมกับocrunner (สำหรับบาง Autotest / คำรามความดี) ปัจจุบันมีการติดตั้ง Obj-C หน่วยทดสอบที่ชื่นชอบ
ที่นี่เป็นพวกเขาทั้งหมด
เซน: เต้ (ผู้สร้างกรอบการทดสอบที่มาพร้อมกับ Xcode) ที่อธิบายวิธีการใช้ OCUnit กับโครงการ iPhone: ง่าย iPhone-iPad หน่วยทดสอบ
Matt Gallagher แห่ง Cocoa with Love มีบทความที่ดีมากเกี่ยวกับการทดสอบหน่วย
ฉันขอแนะนำให้ดูเป็น Kiwi ซึ่งเป็นกรอบการทดสอบโอเพนซอร์ส BDD สำหรับ iOS: Kiwi
ตรวจสอบ WIKI ของโครงการเพื่อเริ่มต้นหรือรับหนังสือของ Daniel Steinberg "Test Driving iOS Development ด้วย Kiwi" test-driving-ios-development
ฉันใช้ SimpleUnitTest ใช้งานได้กับ iPhone และ iPad libs
http://cbess.blogspot.com/2010/05/simple-iphone-ipad-unit-test.html
มันมาพร้อมกับเทมเพลต Xcode สำหรับทดสอบหน่วยเพื่อเพิ่มคลาสการทดสอบหน่วยได้อย่างง่ายดาย ห่อ GTM
คุณสามารถวางลงในโครงการที่ใช้งานอยู่และเริ่มเพิ่มการทดสอบหน่วยภายใน 3 นาที (หรือน้อยกว่า)
ฉันหวังว่าคุณสามารถใช้ 'SenTestKit' ซึ่งคุณสามารถทดสอบแต่ละวิธีได้