คำถามติดแท็ก unit-testing

การทดสอบหน่วยเป็นวิธีการที่แต่ละหน่วยของรหัสที่มาจะถูกทดสอบเพื่อตรวจสอบว่าพวกเขาจะเหมาะสำหรับการใช้งาน

30
ฉันจะทดสอบฟังก์ชั่นส่วนตัวหรือชั้นเรียนที่มีวิธีการส่วนตัวเขตข้อมูลหรือชั้นในได้อย่างไร
ฉันจะทดสอบหน่วย (โดยใช้ xUnit) คลาสที่มีวิธีการส่วนตัวภายในเขตข้อมูลหรือคลาสที่ซ้อนกันได้อย่างไร หรือฟังก์ชั่นที่ทำให้เป็นส่วนตัวโดยมีการเชื่อมโยงภายใน ( staticใน C / C ++) หรืออยู่ในเนมสเปซส่วนตัว ( ไม่ระบุชื่อ )? ดูเหมือนว่าการเปลี่ยนแปลงตัวปรับการเข้าถึงสำหรับวิธีการหรือฟังก์ชั่นจะไม่สามารถทำการทดสอบได้
2727 java  unit-testing  tdd 

10
วิธีการจำลองโมฆะด้วย Mockito
วิธีการเยาะเย้ยวิธีการที่มีประเภทผลตอบแทนเป็นโมฆะ? ฉันใช้รูปแบบการสังเกตการณ์ แต่ไม่สามารถเยาะเย้ยกับ Mockito ได้เพราะฉันไม่รู้ว่าจะทำอย่างไร และฉันพยายามค้นหาตัวอย่างบนอินเทอร์เน็ต แต่ไม่ประสบความสำเร็จ ชั้นเรียนของฉันมีลักษณะเช่นนี้: public class World { List<Listener> listeners; void addListener(Listener item) { listeners.add(item); } void doAction(Action goal,Object obj) { setState("i received"); goal.doAction(obj); setState("i finished"); } private string state; //setter getter state } public class WorldTest implements Listener { @Test public void word{ World w= …

30
การทดสอบหน่วยรหัส C [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน5 ปีที่ผ่านมา ฉันทำงานในระบบฝังตัวในฤดูร้อนนี้เขียนตรง C. เป็นโครงการที่มีอยู่แล้วซึ่ง บริษัท ที่ฉันทำงานเพื่อรับช่วงต่อ ฉันคุ้นเคยกับการเขียนการทดสอบหน่วยใน Java โดยใช้ JUnit แต่เป็นวิธีที่ดีที่สุดในการเขียนการทดสอบหน่วยสำหรับโค้ดที่มีอยู่ มีโครงการใดบ้างที่ทำให้การทดสอบหน่วย C รหัสธรรมดาง่ายเหมือนการทดสอบหน่วยรหัส Java กับ JUnit? ความเข้าใจใด ๆ ที่จะนำไปใช้กับการพัฒนาโดยเฉพาะ (การคอมไพล์ข้ามกับแพลตฟอร์ม arm-linux) จะได้รับการชื่นชมอย่างมาก




19
การทดสอบหน่วยการทดสอบการรวมการทดสอบควันและการทดสอบการถดถอยคืออะไร?
การทดสอบหน่วยการทดสอบการรวมการทดสอบควันและการทดสอบการถดถอยคืออะไร? อะไรคือความแตกต่างระหว่างพวกเขาและเครื่องมือใดที่ฉันสามารถใช้สำหรับพวกเขาแต่ละคน ตัวอย่างเช่นผมใช้JUnitและNUnitสำหรับการทดสอบหน่วยและการทดสอบการรวม มีเครื่องมือสำหรับสองการทดสอบควันหรือการทดสอบการถดถอยหรือไม่

13
เครื่องมือทดสอบหน่วย JavaScript สำหรับ TDD
คำตอบของคำถามนี้เป็นความพยายามของชุมชน แก้ไขคำตอบที่มีอยู่เพื่อปรับปรุงโพสต์นี้ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ฉันได้พิจารณาและพิจารณาการทดสอบหน่วย JavaScript และเครื่องมือทดสอบจำนวนมาก แต่ไม่สามารถหาตัวเลือกที่เหมาะสมเพื่อให้สอดคล้องกับ TDD ได้อย่างสมบูรณ์ ดังนั้นมีเครื่องมือทดสอบหน่วย JavaScript ที่สอดคล้องกับ TDD อย่างสมบูรณ์หรือไม่

11
ความแตกต่างระหว่างการแกล้งเยาะเย้ยและการขัดถูคืออะไร
ผมรู้ว่าผมใช้คำเหล่านี้ แต่ฉันสงสัยว่าถ้ามีได้รับการยอมรับคำจำกัดความของแกล้ง , เยาะเย้ยและstubbingสำหรับการทดสอบหน่วย? คุณกำหนดสิ่งเหล่านี้สำหรับการทดสอบอย่างไร อธิบายสถานการณ์ที่คุณอาจใช้แต่ละสถานการณ์ นี่คือวิธีที่ฉันใช้ ปลอม : คลาสที่ใช้อินเทอร์เฟซ แต่มีข้อมูลคงที่และไม่มีตรรกะ เพียงส่งคืนข้อมูล "ดี" หรือ "ไม่ดี" ขึ้นอยู่กับการใช้งาน เยาะเย้ย : ชั้นเรียนที่ใช้อินเตอร์เฟซและช่วยให้ความสามารถในการตั้งค่าแบบไดนามิกเพื่อส่งกลับ / ข้อยกเว้นที่จะโยนจากวิธีการเฉพาะและให้ความสามารถในการตรวจสอบว่าวิธีการเฉพาะได้รับการเรียก / ไม่เรียก Stub : เช่นเดียวกับคลาส mock ยกเว้นว่ามันไม่ได้ให้ความสามารถในการตรวจสอบว่าวิธีการที่ได้รับการเรียก / ไม่ได้เรียกว่า mocks และ stubs สามารถสร้างขึ้นด้วยมือหรือสร้างขึ้นโดยกรอบการเยาะเย้ย ชั้นเรียนปลอมถูกสร้างขึ้นด้วยมือ ฉันใช้ mocks เป็นหลักในการตรวจสอบการมีปฏิสัมพันธ์ระหว่างชั้นเรียนของฉันและชั้นเรียนที่ขึ้นต่อกัน ฉันใช้สตับเมื่อฉันตรวจสอบการมีปฏิสัมพันธ์และกำลังทดสอบเส้นทางอื่นผ่านโค้ดของฉัน ฉันใช้คลาสปลอมเป็นหลักในการสรุปข้อมูลการพึ่งพาข้อมูลหรือเมื่อ mocks / stubs น่าเบื่อเกินกว่าที่จะตั้งค่าในแต่ละครั้ง

26
ฉันจะทดสอบรหัสเธรดได้อย่างไร
ฉันได้หลีกเลี่ยงฝันร้ายที่กำลังทดสอบโค้ดหลายเธรดเพราะมันดูเหมือนว่าเป็นเขตที่วางทุ่นระเบิดมากเกินไป ฉันต้องการถามว่าผู้คนทดสอบโค้ดที่อาศัยเธรดเพื่อการดำเนินการที่ประสบความสำเร็จได้อย่างไรหรือว่าผู้คนทดสอบเกี่ยวกับปัญหาประเภทนั้น ๆ ที่ปรากฏขึ้นเมื่อสองเธรดตอบสนองในลักษณะที่กำหนดเท่านั้น ดูเหมือนว่าปัญหาสำคัญสำหรับโปรแกรมเมอร์วันนี้มันจะเป็นประโยชน์ในการรวมความรู้ของเรากับสิ่งนี้

21
เรียกใช้ไม่ได้ด้วยโครงสร้างไดเรกทอรีทดสอบทั่วไป
โครงสร้างไดเรกทอรีทั่วไปมากสำหรับแม้แต่โมดูล Python ที่เรียบง่ายดูเหมือนว่าจะแยกการทดสอบหน่วยออกเป็นtestไดเรกทอรีของตนเอง: new_project/ antigravity/ antigravity.py test/ test_antigravity.py setup.py etc. เช่นดูโครงการ Python นี้อย่างไร คำถามของฉันเป็นเพียงวิธีปกติของการทดสอบจริง ๆ คืออะไร? ฉันสงสัยว่านี่เป็นสิ่งที่ชัดเจนสำหรับทุกคนยกเว้นฉัน แต่คุณไม่สามารถเรียกใช้python test_antigravity.pyจากไดเรกทอรีทดสอบได้เพราะมันimport antigravityจะล้มเหลวเนื่องจากโมดูลไม่ได้อยู่ในเส้นทาง ฉันรู้ว่าฉันสามารถแก้ไข PYTHONPATH และลูกเล่นการค้นหาอื่น ๆ ที่เกี่ยวข้องกับเส้นทางได้ แต่ฉันไม่อยากเชื่อว่านั่นเป็นวิธีที่ง่ายที่สุด - ก็ดีถ้าคุณเป็นนักพัฒนา แต่ไม่เป็นจริงที่จะคาดหวังให้ผู้ใช้ของคุณใช้งาน ที่ผ่านไป อีกทางเลือกหนึ่งคือการคัดลอกไฟล์ทดสอบไปยังไดเรกทอรีอื่น แต่ดูเหมือนจะเป็นบิตและขาดจุดในการมีไฟล์ในไดเรกทอรีแยกกันเพื่อเริ่มต้น ดังนั้นหากคุณเพิ่งดาวน์โหลดซอร์สไปยังโครงการใหม่ของฉันคุณจะทดสอบหน่วยได้อย่างไร ฉันต้องการคำตอบที่จะให้ฉันพูดกับผู้ใช้ของฉัน: "การเรียกใช้การทดสอบหน่วยทำ X"

30
ความครอบคลุมของรหัส% ที่สมเหตุสมผลสำหรับการทดสอบหน่วย (และทำไม) คืออะไร [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน3 ปีที่ผ่านมา หากคุณต้องมอบรหัสเปอร์เซ็นต์การครอบคลุมขั้นต่ำสำหรับการทดสอบหน่วยบางทีอาจเป็นข้อกำหนดสำหรับการยืนยันที่เก็บข้อมูลมันจะเป็นอย่างไร โปรดอธิบายว่าคุณมาถึงที่คำตอบของคุณได้อย่างไร (เพราะถ้าคุณเลือกเบอร์แล้วฉันก็ทำได้ด้วยตัวเอง;)

30
การทดสอบหน่วยคุ้มค่ากับความพยายามหรือไม่ [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา ล็อคแล้ว คำถามและคำตอบนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ฉันกำลังทำงานเพื่อรวมการทดสอบหน่วยเข้ากับกระบวนการพัฒนาในทีมที่ฉันทำงานและมีข้อกังขาบางอย่าง อะไรคือวิธีที่ดีในการโน้มน้าวผู้พัฒนาที่สงสัยในทีมของการทดสอบหน่วย? ในกรณีเฉพาะของฉันเราจะเพิ่มการทดสอบหน่วยในขณะที่เราเพิ่มฟังก์ชันการทำงานหรือแก้ไขข้อบกพร่อง น่าเสียดายที่ฐานรหัสของเราไม่ให้ยืมง่ายต่อการทดสอบ
572 unit-testing 

12
การทดสอบการตั้งชื่อหน่วยการปฏิบัติที่ดีที่สุด [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา แนวปฏิบัติที่ดีที่สุดสำหรับการตั้งชื่อคลาสการทดสอบหน่วยและวิธีการทดสอบคืออะไร สิ่งนี้ถูกพูดถึงใน SO ก่อนหน้านี้ที่อนุสัญญาการตั้งชื่อยอดนิยมสำหรับการทดสอบหน่วยมีอะไรบ้าง ผมไม่ทราบว่านี้เป็นวิธีการที่ดีมาก แต่ในปัจจุบันโครงการการทดสอบของฉันฉันมีแมปแบบหนึ่งต่อหนึ่งระหว่างแต่ละระดับการผลิตและการทดสอบระดับเช่นและProductProductTest Save_ShouldThrowExceptionWithNullName()ในการเรียนการทดสอบของฉันฉันก็มีวิธีการที่มีชื่อของวิธีการที่ฉันกำลังทดสอบขีดล่างและจากนั้นสถานการณ์และสิ่งที่ผมคาดหวังว่าจะเกิดขึ้นเช่น

7
การเขียนการทดสอบหน่วยใน Python: ฉันจะเริ่มได้อย่างไร [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันทำโปรเจ็กต์แรกที่เหมาะสมใน Python และตอนนี้งานของฉันคือเขียนการทดสอบ เนื่องจากนี่เป็นครั้งแรกที่ฉันทำโครงการนี่เป็นครั้งแรกที่ฉันจะเขียนข้อสอบ คำถามคือว่าฉันจะเริ่มต้นอย่างไร ฉันไม่รู้อย่างแน่นอน ทุกคนสามารถชี้ให้ฉันไปที่เอกสาร / กวดวิชา / ลิงค์ / หนังสือที่ฉันสามารถใช้เพื่อเริ่มต้นด้วยการทดสอบการเขียน (และฉันเดาการทดสอบหน่วยโดยเฉพาะอย่างยิ่ง) คำแนะนำใด ๆ จะได้รับการต้อนรับในหัวข้อนี้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.