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

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

2
ตัวอย่างการทดสอบหน่วยที่ดีสำหรับนักพัฒนา C ฝังตัว [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัพเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน6 ปีที่ผ่านมา ฉันจะพูดคุยกับแผนกของฉันในสัปดาห์หน้าเกี่ยวกับการทดสอบหน่วยและการพัฒนาที่เน้นการทดสอบ เป็นส่วนหนึ่งของเรื่องนี้ฉันจะแสดงตัวอย่างจริงจากรหัสบางอย่างที่ฉันเขียนเมื่อเร็ว ๆ นี้ แต่ฉันยังต้องการแสดงตัวอย่างง่ายๆที่ฉันจะเขียนในการพูดคุย ฉันค้นหาตัวอย่างที่ดีจากเว็บ แต่ฉันพยายามหาสิ่งที่เหมาะสมกับการพัฒนาของเราโดยเฉพาะ ซอฟต์แวร์เกือบทั้งหมดที่เราเขียนนั้นเป็นระบบควบคุมฝังตัวลึกที่ทำงานบนไมโครคอนโทรลเลอร์ขนาดเล็ก มีรหัส C จำนวนมากที่ใช้งานได้ง่ายกับการทดสอบหน่วย (ฉันจะพูดถึงการทดสอบหน่วยบนพีซีแทนที่จะเป็นเป้าหมายเอง) ตราบใดที่คุณยังไม่ชัดเจนในเลเยอร์ 'ก้น': สิ่งที่พูดถึงโดยตรง ไปยังอุปกรณ์ต่อพ่วงไมโครคอนโทรลเลอร์ อย่างไรก็ตามตัวอย่างส่วนใหญ่ที่ฉันพบมักใช้การประมวลผลแบบสตริง (เช่นตัวอย่างตัวเลข Dive Into Python เลขโรมันที่ยอดเยี่ยม) และเนื่องจากเราแทบจะไม่เคยใช้สตริงสิ่งนี้จึงไม่เหมาะ (เกี่ยวกับฟังก์ชันไลบรารีเท่านั้นโดยทั่วไปแล้วโค้ดของเราใช้ มีmemcpy, memcmpและmemset,strcat หรือนิพจน์ทั่วไปไม่ถูกต้อง) ดังนั้นในคำถาม: ทุกคนสามารถเสนอตัวอย่างที่ดีของฟังก์ชั่นที่ฉันสามารถใช้เพื่อสาธิตการทดสอบหน่วยในเซสชั่นสดได้หรือไม่? คำตอบที่ดีในความเห็น (อาจมีการเปลี่ยนแปลง) ของฉันอาจจะ: ฟังก์ชั่นที่เรียบง่ายพอที่ทุกคน (แม้กระทั่งผู้ที่เขียนโค้ดเป็นครั้งคราว) สามารถเข้าใจได้ ฟังก์ชั่นที่ไม่ปรากฏว่าไม่มีจุดหมาย (เช่นการทำพาริตีหรือซีอาร์ซีน่าจะดีกว่าฟังก์ชั่นที่คูณสองตัวเลขด้วยกันและเพิ่มค่าคงที่แบบสุ่ม); ฟังก์ชั่นที่สั้นพอที่จะเขียนต่อหน้าผู้คน (ฉันอาจใช้ประโยชน์จากคลิปบอร์ดมากมายของ …

8
ไฟล์เดียวหรือหลายไฟล์สำหรับการทดสอบหน่วยในชั้นเดียว?
ในการวิจัยการทดสอบแนวปฏิบัติที่ดีที่สุดเพื่อช่วยรวบรวมแนวทางสำหรับองค์กรของฉันฉันพบว่ามันดีกว่าหรือมีประโยชน์ในการแยกการทดสอบการทดสอบ (คลาสทดสอบ) หรือเพื่อทำการทดสอบทั้งหมดสำหรับคลาสเดียวในไฟล์เดียว Fwiw ฉันหมายถึง "การทดสอบหน่วย" ในความหมายที่บริสุทธิ์ว่าเป็นการทดสอบในกล่องสีขาวที่กำหนดเป้าหมายไปที่คลาสเดี่ยวหนึ่งการยืนยันต่อการทดสอบหนึ่งการอ้างอิงทั้งหมดที่ล้อเลียนเป็นต้น ตัวอย่างสถานการณ์เป็นคลาส (เรียกว่าเอกสาร) ที่มีสองวิธี: CheckIn และ CheckOut แต่ละวิธีใช้กฎต่าง ๆ ฯลฯ ที่ควบคุมพฤติกรรมของพวกเขา ตามกฎข้อหนึ่งต่อการทดสอบฉันจะมีการทดสอบหลายวิธีสำหรับแต่ละวิธี ฉันสามารถวางทั้งหมดของการทดสอบในครั้งเดียวDocumentTestsระดับที่มีชื่อชอบและCheckInShouldThrowExceptionWhenUserIsUnauthorizedCheckOutShouldThrowExceptionWhenUserIsUnauthorized หรือผมอาจจะมีสองชั้นทดสอบเฉพาะกิจการ: และCheckInShould CheckOutShouldในกรณีนี้ชื่อการทดสอบของฉันจะสั้นลง แต่พวกเขาจะจัดระเบียบเพื่อให้การทดสอบทั้งหมดสำหรับพฤติกรรมที่เฉพาะเจาะจง (วิธีการ) อยู่ด้วยกัน ฉันแน่ใจว่ามีทั้งของมืออาชีพและนักต้มตุ๋นที่จะเข้าใกล้และสงสัยว่าถ้าใครไปเส้นทางด้วยไฟล์หลาย ๆ ไฟล์และถ้าเป็นเช่นนั้นทำไม? หรือถ้าคุณเลือกวิธีการไฟล์เดียวทำไมคุณถึงรู้สึกว่ามันดีกว่า

1
มันสมเหตุสมผลหรือไม่ที่จะวัดความครอบคลุมตามเงื่อนไขสำหรับโค้ด Java 8?
ฉันสงสัยว่าการวัดการครอบคลุมโค้ดตามเงื่อนไขด้วยเครื่องมือปัจจุบันสำหรับ Java นั้นไม่ล้าสมัยหรือไม่นับตั้งแต่ Java 8 ออกมา ด้วย Java 8's OptionalและStreamเราสามารถหลีกเลี่ยงโค้ดย่อย / ลูปได้ซึ่งทำให้ง่ายต่อการได้รับความคุ้มครองตามเงื่อนไขสูงมากโดยไม่ต้องทดสอบพา ธ การประมวลผลที่เป็นไปได้ทั้งหมด ลองเปรียบเทียบโค้ด Java เก่ากับโค้ด Java 8: ก่อน Java 8: public String getName(User user) { if (user != null) { if (user.getName() != null) { return user.getName(); } } return "unknown"; } มี 3 เส้นทางการประมวลผลที่เป็นไปได้ในวิธีการข้างต้น เพื่อให้ได้ความคุ้มครองตามเงื่อนไข 100% เราจำเป็นต้องสร้างการทดสอบ …

4
วิธีการทดสอบเมื่อการจัดเรียงข้อมูลยุ่งยากเกินไป?
ฉันกำลังเขียนโปรแกรมแยกวิเคราะห์และเป็นส่วนหนึ่งของที่ฉันมีExpanderชั้นเรียนที่ "ขยาย" คำสั่งที่ซับซ้อนเดียวในงบง่าย ๆ หลาย ๆ ตัวอย่างเช่นมันจะขยายสิ่งนี้: x = 2 + 3 * a เป็น: tmp1 = 3 * a x = 2 + tmp1 ตอนนี้ฉันกำลังคิดเกี่ยวกับวิธีการทดสอบคลาสนี้โดยเฉพาะวิธีการจัดเรียงการทดสอบ ฉันสามารถสร้างแผนภูมิไวยากรณ์อินพุตด้วยตนเองได้: var input = new AssignStatement( new Variable("x"), new BinaryExpression( new Constant(2), BinaryOperator.Plus, new BinaryExpression(new Constant(3), BinaryOperator.Multiply, new Variable("a")))); หรือฉันสามารถเขียนเป็นสตริงและแยกมัน var input = new …

1
ฉันจะทดสอบโปรแกรมอ่านไฟล์ได้อย่างไร
ฉันกำลังทำงานในโครงการที่มีรูปแบบไฟล์ไม่กี่รูปแบบ รูปแบบบางรูปแบบถูกระบุโดย. xsds รูปแบบอื่น ๆ โดยใช้เอกสารประกอบในเว็บไซต์ที่เกี่ยวข้องและบางรูปแบบเป็นรูปแบบภายในที่กำหนดเองที่ไม่มีเอกสารประกอบ Mwahahahaha มีปัญหาอะไร? ฉันต้องการทดสอบตัวอ่านไฟล์ของฉัน แต่ฉันไม่แน่ใจว่าจะทำสิ่งนี้ได้อย่างไร การไหลของแอพลิเคชันเป็นเช่นนี้: file.___ ===> read by FileReader.java ===> which creates a Model object ที่FileReaderอินเตอร์เฟซอยู่ public interface FileReader { public Model read(String filename); } กระบวนการModelมีจำนวนของคุณสมบัติที่บรรจุเมื่ออ่านไฟล์ มันดูเหมือนอะไร public class Model { List<String> as; List<String> bs; boolean isAPain = true; // ... } ฉันลองทำอะไร …

6
เหตุใดฉันจึงต้องการการทดสอบหน่วยสำหรับวิธีการทดสอบที่เก็บ?
ฉันต้องการที่จะเล่นกับผู้สนับสนุนปีศาจในคำถามนี้เล็กน้อยเพราะฉันไม่สามารถปกป้องมันได้ดีเพราะขาดประสบการณ์ นี่คือข้อตกลงฉันได้รับแนวคิดแตกต่างระหว่างการทดสอบหน่วยและการทดสอบการรวม เมื่อมุ่งเน้นไปที่วิธีการติดตาและพื้นที่เก็บข้อมูลโดยเฉพาะการทดสอบหน่วยจะใช้การเยาะเย้ยผ่านกรอบเช่น Moq เพื่อยืนยันว่าคำสั่งการค้นหาถูกส่งคืนตามที่คาดไว้ สมมติว่าฉันได้สร้างการทดสอบหน่วยต่อไปนี้: [TestMethod] public void GetOrderByIDTest() { //Uses Moq for dependency for getting order to make sure //ID I set up in 'Arrange' is same one returned to test in 'Assertion' } ดังนั้นถ้าฉันตั้งค่าOrderIdExpected = 5และวัตถุจำลองของฉันจะกลับมา5เป็น ID ที่การทดสอบของฉันจะผ่าน ฉันเข้าใจแล้ว ฉันหน่วยทดสอบรหัสเพื่อให้แน่ใจว่าสิ่งที่รหัส preforms ของฉันคืนวัตถุและ ID ที่คาดหวังและไม่ใช่อย่างอื่น อาร์กิวเมนต์ที่ฉันจะได้รับคือ: "ทำไมไม่เพียงแค่ข้ามการทดสอบหน่วยและทำการทดสอบการรวมกันมันเป็นการทดสอบขั้นตอนการจัดเก็บฐานข้อมูลและรหัสของคุณด้วยกันที่สำคัญดูเหมือนว่างานพิเศษมากเกินกว่าที่จะมีการทดสอบหน่วยและการทดสอบการรวมเข้าด้วยกัน และรหัสทำงานฉันรู้ว่าการทดสอบใช้เวลานานกว่า …

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

1
ฉันได้ทดสอบหน่วยการเรียนของฉันแล้วฉันจะเริ่มต้นด้วยการทดสอบการรวมได้อย่างไร
ฉันได้เขียนคลาสที่จัดการผู้รับในรายการ MailChimp เรียกว่า MailChimpRecipient มันใช้คลาส MCAPI ซึ่งเป็น wrapper API ของบุคคลที่สาม http://apidocs.mailchimp.com/api/1.3/ http://apidocs.mailchimp.com/api/downloads/ ฉันส่งวัตถุ MCAPI ไปยังตัวสร้างของวัตถุ MailChimpRecipient ดังนั้นฉันจึงได้เขียนการทดสอบหน่วยโดยใช้ PHPUnit ที่ทดสอบตรรกะทั้งหมดในชั้นเรียนของฉันเอง (ฉันไม่ได้ทดสอบคลาส MCAPI) ฉันมีรหัสครอบคลุม 100% และการทดสอบทั้งหมดผ่าน สิ่งนี้ทำได้โดยการล้อเลียนและขัดถูวัตถุ MCAPI ขั้นตอนต่อไปของฉันคือการเขียนการทดสอบการรวมด้วยการใช้ PHPUnit ที่ฉันจะสร้างการติดตั้ง MailChimpRecipient โดยใช้วัตถุ MCAPI จริงตั้งค่าให้ใช้รายการ MailChimp จริง ฉันได้เขียนสิ่งที่ฉันคิดว่าเป็นการทดสอบแบบรวมซึ่งโดยทั่วไปแล้วการทดสอบจะทำให้การติดต่อกับวัตถุนั้นเป็นไปอย่างราบรื่น public function testAddedRecipientCanBeFound() { $emailAddress = 'fred@fredsdomain.com'; $forename = 'Fred'; $surname = 'Smith'; // …
19 php  unit-testing 

9
สิ่งที่ต้องทำในฐานะทีมใหม่นำไปสู่โครงการที่มีปัญหาการบำรุงรักษา?
ฉันเพิ่งรับผิดชอบโครงการโค้ดที่มีปัญหาการบำรุงรักษา ฉันจะทำอะไรได้บ้างเพื่อให้โครงงานมีเสถียรภาพ ฉันพบว่าตัวเองอยู่ในสถานที่ที่เรากำลังทำงานกับระบบหลายชั้นที่มีขนาดใหญ่มากที่ขาดสิ่งสำคัญมากมายเช่นการทดสอบหน่วย IOC, MEF, คลาสสแตติกคงที่มากเกินไปชุดข้อมูลบริสุทธิ์เป็นต้นฉัน เพียง 24 แต่ฉันอยู่ที่นี่มาเกือบสามปีแล้ว (แอพนี้พัฒนามา 5 ปี) และส่วนใหญ่เป็นเพราะข้อ จำกัด ด้านเวลาเราเพิ่งเพิ่มอึมากขึ้นเพื่อให้พอดีกับอึคนอื่น หลังจากทำหลายโครงการในเวลาว่างฉันเริ่มเข้าใจว่าแนวคิดเหล่านั้นสำคัญเพียงใด นอกจากนี้เนื่องจากการเปลี่ยนพนักงานฉันพบว่าตัวเองเป็นผู้นำทีมในโครงการนี้และฉันต้องการวิธีการที่ชาญฉลาดในการปรับปรุงแอพนี้ วิธีที่ค่าสามารถอธิบายการจัดการ ฉันมีความคิดเกี่ยวกับสิ่งที่ฉันต้องการจะทำ แต่พวกเขาทั้งหมดดูเหมือนล้นหลามโดยไม่ได้รับมากล่วงหน้า เรื่องราวใด ๆ ที่ผู้คนมีหรือเกี่ยวข้องกับเรื่องนี้จะเป็นเรื่องที่น่าสนใจมาก ขอบคุณ

1
วิธีการตั้งค่าการทดสอบหน่วยใน Visual Studio 2010 [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัพเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน4 ปีที่แล้ว ฉันกำลังทำโปรเจคใหญ่ครั้งแรกและฉันไม่มีประสบการณ์มากมายในการเขียนโปรแกรมมืออาชีพ ในขณะที่ทำการค้นคว้าสิ่งที่เกี่ยวข้องกับการเขียนโปรแกรมฉันมักจะเห็นการอ้างอิงถึงการทดสอบหน่วย แต่ฉันก็ยังไม่ชัดเจนเกี่ยวกับวิธีการตั้งค่าเหล่านั้นหรือแม้ว่ามันจะเป็นประโยชน์กับฉัน ใครสามารถอธิบายการทดสอบหน่วยให้ฉันและวิธีการตั้งค่าในโซลูชัน Visual Studio 2010 ที่มีหลายโครงการ เป็นสิ่งที่เกิดขึ้นในโซลูชันของโครงการของคุณหรือเป็นโซลูชันแยกต่างหาก และเป็นสิ่งที่คุณต้องการแนะนำให้กับทีมพัฒนาขนาดเล็กหรือเพียงแค่เสียเวลาในการตั้งค่า ตอนนี้ฉันเพิ่งเรียกใช้โปรแกรมทั้งหมดเพื่อทดสอบสิ่งที่ฉันกำลังทำงานอยู่ แต่บางครั้งฉันพบปัญหาที่ไม่สามารถดีบักได้ง่ายและมันจะมีประโยชน์ในการเรียกใช้ส่วนย่อยของรหัสที่อื่น ... บางครั้งฉันทำการติดตั้งอีกครั้ง โปรเจ็กต์ที่มีไลบรารี่บางส่วนที่อ้างอิงเพื่อทดสอบส่วนเล็ก ๆ ของโปรแกรม แต่ฉันรู้สึกว่าเสียเวลามากขึ้นในการตั้งค่าที่ใช้งานแล้วเพียงแค่เรียกใช้โปรแกรมทั้งหมดเนื่องจากการพึ่งพาทั้งหมดที่เกี่ยวข้อง

6
ฉันต้องการกรอบการทดสอบหน่วยจริงหรือไม่?
ปัจจุบันที่งานของฉันเรามีชุดทดสอบหน่วยใหญ่สำหรับแอปพลิเคชัน C ++ ของเรา อย่างไรก็ตามเราไม่ใช้กรอบการทดสอบหน่วย พวกเขาใช้ประโยชน์จากแมโคร C ซึ่งโดยทั่วไปแล้วจะเป็นการห่อคำยืนยันและหมวก สิ่งที่ต้องการ: VERIFY(cond) if (!(cond)) {std::cout << "unit test failed at " << __FILE__ << "," << __LINE__; asserst(false)} จากนั้นเราก็สร้างฟังก์ชั่นสำหรับการทดสอบแต่ละแบบของเราเช่น void CheckBehaviorYWhenXHappens() { // a bunch of code to run the test // VERIFY(blah != blah2); // more VERIFY's as needed } เซิร์ฟเวอร์ …

3
ฉันควรรวมการทดสอบในอิมเมจ Docker หรือไม่
เมื่อพูดถึงการทดสอบฉันสามารถนึกถึงสองตัวเลือก: ใส่ทั้งการทดสอบและแอปพลิเคชันในภาพเดียว รวมเฉพาะรหัสแอปพลิเคชันในภาพ สร้างคอนเทนเนอร์เฉพาะของการทดสอบที่สร้างขึ้นหลังจากอิมเมจหลักและเพิ่มเลเยอร์บางอย่างลงในนั้น (รหัสทดสอบการอ้างอิงและอื่น ๆ ) ด้วยตัวเลือกแรกฉันสามารถทดสอบคอนเทนเนอร์และจัดส่งตรงตามที่ได้รับการทดสอบ ข้อเสียที่ชัดเจนคือรหัสที่ไม่จำเป็น (และอาจมีการทดสอบข้อมูล) จะรวมอยู่ในภาพ ด้วยตัวเลือกที่สองรูปภาพที่ส่งมานั้นไม่เหมือนกับภาพที่ถูกทดสอบ ทั้งคู่ดูเหมือนกลยุทธ์ที่ไม่ดี มีสามกลยุทธ์ที่ดีกว่าหรือไม่?

7
คุณทดสอบโค้ดหน่วยโดยใช้โครงสร้างกราฟได้อย่างไร
ฉันกำลังเขียนโค้ด (เรียกซ้ำ) ที่ใช้การนำทางกราฟการขึ้นต่อกันเพื่อค้นหารอบหรือความขัดแย้งในการอ้างอิง อย่างไรก็ตามฉันไม่แน่ใจว่าจะทดสอบหน่วยนี้ได้อย่างไร ปัญหาคือหนึ่งในข้อกังวลหลักของเราคือการจัดการโค้ดบนโครงสร้างกราฟที่น่าสนใจทั้งหมดที่สามารถเกิดขึ้นได้และทำให้แน่ใจว่าโหนดทั้งหมดจะได้รับการจัดการอย่างเหมาะสม ในขณะที่โดยปกติแล้วจะครอบคลุม 100% line หรือ branch ก็เพียงพอที่จะมั่นใจได้ว่าโค้ดบางตัวทำงานได้ดี แต่ก็ให้ความรู้สึกเหมือนมี 100% path path ที่คุณยังมีข้อสงสัยอยู่ ดังนั้นวิธีการเกี่ยวกับการเลือกโครงสร้างกราฟสำหรับกรณีทดสอบมีความมั่นใจว่ารหัสของพวกเขาสามารถจัดการกับพีชคณิตที่เป็นไปได้ทั้งหมดที่คุณจะพบในข้อมูลโลกแห่งความเป็นจริง ป.ล. -ถ้ามันสำคัญขอบทั้งหมดในกราฟของฉันจะมีป้ายกำกับว่า "ต้องมี" xor "ไม่สามารถมี" และไม่มีวัฏจักรเล็กน้อยและมีเพียงขอบเดียวระหว่างสองโหนด PPS-คำสั่งปัญหาเพิ่มเติมนี้เดิมถูกโพสต์โดยผู้เขียนคำถามในความคิดเห็นด้านล่าง: For all vertices N in forest F, for all vertices M, in F, such that if there are any walks between N and M they all …

8
การทดสอบหน่วยที่ดีเพื่อครอบคลุมกรณีการใช้งานของการกลิ้งแม่พิมพ์
ฉันพยายามที่จะจับกับการทดสอบหน่วย สมมติว่าเรามีแม่พิมพ์ซึ่งสามารถมีจำนวนด้านเริ่มต้นเท่ากับ 6 (แต่สามารถมี 4, 5 ด้าน ฯลฯ ): import random class Die(): def __init__(self, sides=6): self._sides = sides def roll(self): return random.randint(1, self._sides) ต่อไปนี้เป็นการทดสอบที่ถูกต้อง / มีประโยชน์หรือไม่ ทดสอบม้วนในช่วง 1-6 สำหรับแม่พิมพ์แบบ 6 ด้าน ทดสอบม้วน 0 สำหรับแม่พิมพ์แบบ 6 ด้าน ทดสอบม้วน 7 สำหรับแม่พิมพ์แบบ 6 ด้าน ทดสอบม้วนในช่วง 1-3 สำหรับแม่พิมพ์ 3 ด้าน ทดสอบม้วน 0 สำหรับแม่พิมพ์ …

5
เป็นวิธีที่ดีที่สุดในการจัดการทดสอบหน่วยของเราคืออะไร
เราได้สร้างการทดสอบหน่วยจำนวนมากสำหรับโปรแกรมหลักของเราในช่วงหลายปีที่ผ่านมา หลายพัน ปัญหาคือเราไม่มีความคิดที่ชัดเจนว่าเราทดสอบอะไรเพราะมีมากมาย และนั่นเป็นปัญหาเพราะเราไม่รู้ว่าเราอ่อนแอในการทดสอบ (หรือที่เรามีการทำซ้ำ) แอพของเราเป็นเครื่องมือการรายงาน ดังนั้นคุณสามารถมีเทมเพลตที่ใช้ในการทดสอบการแยกวิเคราะห์ (เราอ่านคุณสมบัติของตารางทั้งหมด) ผสานข้อมูล (เราเก็บคุณสมบัติของตารางที่ถูกต้องในการผสาน) จัดรูปแบบหน้าสุดท้าย (เป็นตารางที่วางไว้อย่างถูกต้องบนหน้า ) และ / หรือรูปแบบเอาต์พุต (เป็นไฟล์ DOCX ที่สร้างขึ้นถูกต้อง) เพิ่มไปยังสิ่งที่เราต้องทดสอบ ใช้ช่องว่างรอบเซลล์ตาราง (เราใช้ Word, Excel, & PowerPoint สำหรับการออกแบบรายงาน) เราต้องทดสอบการขยายทั่วตัวแบ่งหน้าสำหรับตารางภายในเซลล์เซลล์ที่ผสานในแนวตั้งเซลล์ที่ถูกผสานในแนวนอนเซลล์ที่ผสานในแนวตั้งและแนวนอนที่มีตารางที่มีเซลล์ที่รวมในแนวตั้งและแนวนอนในตารางด้านใน พักข้ามหน้า ดังนั้นการทดสอบนั้นจะอยู่ในประเภทใด? การเสริมตาราง, ตัวแบ่งหน้า, เซลล์ที่ซ้อนกัน, เซลล์ที่ผสานในแนวตั้ง, เซลล์ที่รวมในแนวนอนหรืออย่างอื่น และเราจะจัดทำเอกสารประเภทเหล่านี้ตั้งชื่อการทดสอบหน่วย ฯลฯ อย่างไร? อัปเดต:ผู้คนจำนวนมากแนะนำให้ใช้เครื่องมือครอบคลุมเพื่อตรวจสอบว่าเรามีความครอบคลุมทั้งหมด น่าเสียดายที่มีการใช้งานอย่าง จำกัด ในกรณีของเราเนื่องจากข้อผิดพลาดมักเกิดจากชุดค่าผสมเฉพาะดังนั้นจึงเป็นรหัสที่ได้รับการทดสอบทั้งหมด แต่ไม่ใช่ในชุดค่าผสมนั้น ตัวอย่างเช่นเรามีลูกค้าเมื่อวานนี้ที่เริ่มบุ๊กมาร์ก Word ที่ส่วนท้ายของลูป forEach แต่ละรายการในเทมเพลต (เอกสาร Word) …

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