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

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

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

11
การทดสอบอัตโนมัติ: การอธิบายคุณค่าทางธุรกิจ
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบได้ใน Software Engineering Stack Exchange อพยพ 8 ปีที่แล้ว ในการเริ่มต้นผมไม่คิดว่านี่เป็นซ้ำของคำถามอื่น ๆในการทดสอบหน่วย สิ่งที่ฉันต้องการความช่วยเหลือคือการสื่อสารถึงคุณค่าของมันกับทีมโปรแกรมเมอร์นักวิเคราะห์ผู้จัดการและผู้ทดสอบ โดยการทดสอบอัตโนมัติฉันไม่คิดว่าฉันต้องแยกความแตกต่างระหว่างการทดสอบหน่วย (เช่น JUnit), BDD (เช่น JBehave, ฟิตเนส) และ UI (Selenium, Watir) เพราะฉันคิดว่าพวกเขาให้คุณค่าที่คล้ายคลึงกัน (แต่รู้สึกอิสระที่จะ เขียนคำตอบที่ไม่เห็นด้วย :)) ต่อไปนี้เป็นรายการที่ฉันระบุฉันกำลังมองหาคำตอบที่ช่วยขยายหรือปรับแต่ง: ประหยัดเวลา / ค่าใช้จ่าย : การเขียนแบบทดสอบอัตโนมัติอาจใช้เวลามากกว่ากรณีทดสอบแบบเป็นลายลักษณ์อักษร อย่างไรก็ตามการพิจารณาการทดสอบนั้นดำเนินการหลายครั้งงานส่วนเพิ่ม (เช่นราคา / เวลา) ในการดำเนินการทดสอบอัตโนมัตินั้นมีคำสั่งไม่มากนัก การทดสอบอัตโนมัตินั้นมีราคาถูกในการใช้งานช่วยให้การเปลี่ยนระบบเป็นไปอย่างสะดวก เอกสาร : ไม่มีวิธีที่แท้จริงที่จะรู้ว่าระบบทำงานอย่างไรกว่าการทดสอบ เอกสารอื่น ๆ มักจะล้าสมัยทันทีที่มีการเขียน แต่การทดสอบ (อย่างน้อยผู้ที่ผ่าน) เปิดเผยว่าสิ่งที่ใช้งานได้จริง …

12
เพื่อนร่วมงานไม่เต็มใจที่จะใช้การทดสอบหน่วย“ เพราะมีรหัสมากกว่า”
เพื่อนร่วมงานไม่เต็มใจที่จะใช้การทดสอบหน่วยและเลือกที่จะทำการทดสอบอย่างรวดเร็วส่งต่อไปยังผู้ใช้และหากทุกอย่างเรียบร้อยก็มีการเผยแพร่สด จำเป็นต้องพูดข้อบกพร่องบางอย่างจะผ่าน ฉันพูดถึงเราควรคิดถึงการใช้การทดสอบหน่วย - แต่เธอต่อต้านเมื่อมันรู้รหัสเพิ่มเติมจะต้องมีการเขียน สิ่งนี้ทำให้ฉันอยู่ในตำแหน่งที่จะแก้ไขบางสิ่งบางอย่างและไม่แน่ใจว่าผลลัพธ์จะเหมือนกันโดยเฉพาะอย่างยิ่งเมื่อโค้ดของเธอเป็นสปาเก็ตตี้และฉันพยายามที่จะปรับโครงสร้างใหม่เมื่อฉันมีโอกาส ดังนั้นวิธีที่ดีที่สุดสำหรับฉันคืออะไร

3
การดิ้นรนกับการขึ้นต่อเนื่องของวงจรในการทดสอบหน่วย
ฉันพยายามฝึกฝน TDD โดยใช้มันเพื่อพัฒนาวิเช่น Bit Vector ฉันบังเอิญใช้สวิฟท์ แต่นี่เป็นคำถามที่ไม่เชื่อเรื่องภาษา My BitVectoris คือตัวstructที่เก็บ single UInt64และนำเสนอ API เหนือมันที่ให้คุณปฏิบัติต่อมันเหมือนกับคอลเลกชัน รายละเอียดไม่สำคัญมาก แต่มันค่อนข้างง่าย 57 บิตสูงเป็นบิตหน่วยเก็บข้อมูลและ 6 บิตด้านล่างเป็นบิต "นับ" ซึ่งจะบอกคุณว่าบิตหน่วยเก็บข้อมูลจำนวนหนึ่งเก็บค่าที่มีอยู่จริงได้อย่างไร จนถึงตอนนี้ฉันมีความสามารถที่เรียบง่ายไม่กี่อย่าง: เครื่องมือเริ่มต้นที่สร้างเวกเตอร์บิตที่ว่างเปล่า countทรัพย์สินของประเภทInt isEmptyทรัพย์สินของประเภทBool ตัวดำเนินการความเสมอภาค ( ==) หมายเหตุ: นี่เป็นตัวดำเนินการค่าความเท่าเทียมกันObject.equals()ใน Java ไม่ใช่ตัวดำเนินการความเท่าเทียมกันอ้างอิงเช่น==ใน Java ฉันวิ่งเข้าไปในกลุ่มพึ่งพาพึ่งพาวงจร: BitVectorหน่วยทดสอบที่ทดสอบความจำเป็นในการเริ่มต้นของฉันที่จะตรวจสอบว่ามีการสร้างขึ้นใหม่ สามารถทำได้หนึ่งใน 3 วิธี: ตรวจสอบ bv.count == 0 ตรวจสอบ bv.isEmpty == true ตรวจสอบว่า bv == …

8
มันจะไม่เป็นประโยชน์ในการเขียนการทดสอบระหว่างการตรวจสอบรหัส?
เพื่อนร่วมงานของฉันเกิดขึ้นกับความคิดที่ฉันพบว่าน่าสนใจ มันจะไม่เป็นประโยชน์ในการเขียนการทดสอบในระหว่างการตรวจสอบโค้ดโดยผู้ที่ทำการตรวจสอบโดยสมมติว่าเราไม่ได้ทำ TDD? สำหรับคำถามนี้สมมติว่านี่เป็นโครงการทางวิชาการล้วนๆไม่มีชีวิตที่จะเสี่ยง ยิ่งกว่านั้นทีมคือ 4 คน ทุกคนรู้ภาษาและคุ้นเคยกับเครื่องมือ / ไลบรารี / กรอบงานทั้งหมดที่ใช้และสามารถเขียนแบบทดสอบได้ โดยทั่วไปแล้วคนที่ไม่ได้เป็นหัวหน้าเต็มสแต็คนำทีมวิศวกรนินจา แต่เป็นนักเขียนโค้ดที่ดี ข้อดีที่ฉันพบ: ส่งเสริมความเข้าใจที่ลึกซึ้งยิ่งขึ้นของรหัสระหว่างการทบทวนเพื่อเขียนการทดสอบที่มีความหมาย จากนั้นคุณสามารถเพิ่มการตรวจสอบโค้ดของการทดสอบเหล่านั้นโดยผู้เขียนโค้ดที่จะทดสอบ ข้อเสียฉันพบ: ข้อเสนอแนะวนซ้ำระหว่างการเขียนโค้ดและการทดสอบเพิ่มขึ้น แก้ไข: ฉันรู้ว่ามันจะไม่ทำงานได้ดีกับเว็บแอปพลิเคชัน "ปกติ" สิ่งที่ฉันมีอยู่ในใจคือกรณีมุมที่คุณใช้อัลกอริทึมทางวิทยาศาสตร์ที่ซับซ้อน สมมติว่ามีบางอย่างเช่นการใช้ไลบรารี่กราฟของตัวเอง NLP ฯลฯ ฉันสงสัยว่ารหัสที่เราเขียนนั้นแยกจากฐานข้อมูลและยากมากที่จะเข้าใจว่าจะไม่เพิ่มระดับการควบคุมอีกคนที่ต้องการเข้าใจแหล่งที่มา โค้ดและทำการทดสอบที่มีความหมายทำให้กระบวนการทั้งหมดมีความเป็นไปได้ที่จะเกิดข้อบกพร่องน้อยลงอย่างเห็นได้ชัดซึ่งไม่ทำให้แอปพลิเคชันเสียหาย แต่ในที่สุดก็ทำให้ผลลัพธ์ของคุณเป็นขยะ

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

7
จะหลีกเลี่ยงการทดสอบหน่วยเปราะบางได้อย่างไร
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบได้ใน Software Engineering Stack Exchange อพยพ 8 ปีที่แล้ว เราได้เขียนแบบทดสอบเกือบ 3,000 ครั้ง - ข้อมูลได้รับการเข้ารหัสอย่างหนักและนำโค้ดกลับมาใช้ใหม่ได้น้อยมาก วิธีการนี้ได้เริ่มที่จะกัดเราในตูด เมื่อระบบมีการเปลี่ยนแปลงเราพบว่าเราใช้เวลามากขึ้นในการแก้ไขข้อผิดพลาด เรามีการทดสอบหน่วยการรวมและการทำงาน สิ่งที่ฉันกำลังมองหาคือวิธีที่ชัดเจนในการเขียนแบบทดสอบที่จัดการได้และบำรุงรักษาได้ กรอบ FakeItEasy nUnit AutoFixture

1
ผลของการสร้างการทดสอบหน่วยในระหว่างการพัฒนาตรงเวลาเพื่อพัฒนารวมถึงเวลาที่ใช้ในกิจกรรมการบำรุงรักษาคืออะไร
ฉันเป็นที่ปรึกษาและฉันจะแนะนำการทดสอบหน่วยให้กับนักพัฒนาทั้งหมดในเว็บไซต์ลูกค้าของฉัน เป้าหมายของฉันคือเพื่อให้แน่ใจว่าแอปพลิเคชันใหม่ทั้งหมดควรมีการทดสอบหน่วยสำหรับคลาสทั้งหมดที่สร้างขึ้น ลูกค้ามีปัญหากับค่าบำรุงรักษาสูงจากการแก้ไขข้อบกพร่องในแอปพลิเคชันที่มีอยู่ แอปพลิเคชันของพวกเขามีอายุการใช้งานตั้งแต่ 5-15 ปีที่พวกเขาเพิ่มคุณสมบัติใหม่อย่างต่อเนื่อง ฉันค่อนข้างมั่นใจว่าพวกเขาจะได้รับประโยชน์อย่างมากจากการเริ่มต้นการทดสอบหน่วย ฉันสนใจผลของการทดสอบหน่วยในเวลาและค่าใช้จ่ายในการพัฒนา: เวลาในการเขียนการทดสอบหน่วยเป็นส่วนหนึ่งของกระบวนการพัฒนาจะเพิ่มเวลาเท่าใด เวลาเท่าไรที่จะถูกบันทึกในกิจกรรมการบำรุงรักษา (การทดสอบและการดีบัก) โดยการทดสอบหน่วยที่ดี?

4
การทดสอบแต่ละหน่วยควรจะสามารถทำงานโดยอิสระจากการทดสอบอื่น ๆ
สมมติว่าคุณมีการทดสอบสำหรับสองวิธีในชั้นเรียน วิธีแรกรวบรวมข้อมูลจากระดับอื่นและวางลงในหน่วยความจำบางส่วนที่ไม่ขึ้นอยู่กับรันไทม์ (เช่นตาราง SQL) ดังนั้นข้อมูลทั้งหมดที่จัดการโดยการทดสอบนี้จะฮาร์ดโค้ดในการทดสอบ วิธีที่สองมีหน้าที่รับผิดชอบในการรับข้อมูลจากที่ที่วิธีแรกทิ้งไว้และเปลี่ยนมันในทางใดทางหนึ่ง (การคำนวณการเคลื่อนย้ายบางส่วนที่อื่น ฯลฯ ) ตอนนี้วิธีที่สองนี้อาจมีอินพุตฮาร์ดโค้ดเช่นเดียวกับแรกหรืออาจสันนิษฐานได้ว่าการทดสอบทั้งสองนั้นจะทำงานตามลำดับและสามารถเลือกได้ว่าการทดสอบครั้งแรกจะถูกเก็บไว้ที่ใดจากการทดสอบครั้งแรก หากคุณเลือกตัวเลือกที่สองคุณจะมีความคิดที่ดีว่าทั้งสองวิธีเล่นด้วยกันได้ดี แต่ถ้าการทดสอบครั้งที่ 1 ล้มเหลวการทดสอบทั้งหมดหลังจากนั้นจะล้มเหลวโดยนำประโยชน์จากการทดสอบไปช่วยแยกแมลงได้เร็วขึ้น หากคุณเลือกตัวเลือกแรกแต่ละวิธีจะแยกและทดสอบอย่างอิสระ แต่คุณจะไม่มีทางรู้ว่าพวกเขาสามารถทำงานร่วมกันได้อย่างถูกต้อง ตัวเลือกไหนดีกว่าที่นี่? มีทางเลือกบางอย่างเช่นมีการทดสอบเดี่ยวสำหรับแต่ละวิธีแยกด้วย hardcoding แล้วทดสอบที่ใหญ่กว่าที่มีทั้งสองวิธีในหนึ่งเดียว?

2
การทดสอบแบบรวมใช้ mocks หรือไม่
ขณะนี้ฉันอยู่ในชั้นเรียนสำหรับการทดสอบซอฟต์แวร์ที่สำหรับโครงการภาคการศึกษาของเราเราต้องทำการทดสอบหลายประเภทเช่นการทดสอบหน่วยและการทดสอบการรวม สำหรับการทดสอบการรวมตัวอาจารย์กล่าวว่าจะใช้ห้องสมุด mocks และการเยาะเย้ย (เช่น EasyMock และ Mockito) สำหรับการทดสอบการรวมกลุ่มของเรา ฉันเริ่มสับสนแล้ว การทดสอบการรวมเป็นการทดสอบนอกชั้นเรียนโมดูลบริการ ฯลฯ เหตุใด mocks และ stubs จึงเหมาะสมที่จะใช้ในการทดสอบการรวมหากคุณกำลังทดสอบคลาสและบริการที่หลากหลาย

4
CI สามารถใช้สำหรับภาษาที่ตีความได้อย่างไร
ฉันไม่เคยใช้ระบบการรวมต่อเนื่อง (CI) มาก่อน ฉันใช้รหัสเป็นหลักใน MATLAB, Python หรือ PHP ทั้งสองอย่างนี้มีขั้นตอนการสร้างและฉันไม่เห็นว่าจะใช้ CI สำหรับงานของฉันได้อย่างไร เพื่อนในโครงการขนาดใหญ่ใน บริษัท ขนาดใหญ่บอกฉันว่าภาษาไม่สำคัญ ฉันไม่เห็นว่า CI จะเป็นประโยชน์กับฉันอย่างไรหากฉันไม่มีขั้นตอนการสร้าง ฉันคิดว่า CI เป็นสภาพแวดล้อมการทดสอบที่จะเรียกใช้การทดสอบหน่วย ฉันพลาดอะไรไปรึเปล่า?

6
ใน TDD ฉันต้องเขียน Test ก่อนหรือ Interface ก่อน?
ฉันกำลังเรียนรู้ TDD โดยใช้ c # เท่าที่ฉันรู้ว่าการทดสอบควรผลักดันการพัฒนานั่นคือการเขียนการทดสอบที่ล้มเหลวครั้งแรกหลังจากที่เขียนรหัสขั้นต่ำที่เปลือยเปล่าเพื่อผ่านการทดสอบแล้วทำการทดสอบใหม่ แต่มันก็ยังกล่าวว่า " โปรแกรมเพื่อการเชื่อมต่อที่ไม่ได้ดำเนินการ " เพื่อเขียนอินเตอร์เฟซแรก นี่คือสิ่งที่ความสับสนของฉันเริ่มต้นขึ้นถ้าฉันกำลังเขียนส่วนต่อประสานกันก่อนสิ่งนั้นจะเป็นการละเมิดสองสิ่ง รหัสที่ถูกเขียนขึ้นสำหรับอินเตอร์เฟซจะไม่ได้แรงหนุนจากการทดสอบ มันไม่ได้เป็นขั้นต่ำเปล่าแน่นอนฉันสามารถเขียนด้วยชั้นเรียนที่เรียบง่าย ฉันควรเริ่มด้วยการเขียนการทดสอบสำหรับอินเทอร์เฟซด้วยหรือไม่ ฉันจะทำการทดสอบโดยไม่ใช้อะไร หากคำถามนี้ฟังดูน่าเสียใจสำหรับเรื่องนั้น แต่ฉันสับสนอย่างที่สุด อาจเป็นเพราะฉันกำลังทำสิ่งต่าง ๆ อย่างแท้จริงเช่นกัน
23 c#  unit-testing  tdd 

2
คลาสการทดสอบหน่วยที่มีฟังก์ชันการทำงานออนไลน์
เมื่อหน่วยทดสอบฟังก์ชั่นของคลาสที่มีฟังก์ชั่นส่วนตัวที่ต้องการฟังก์ชั่นออนไลน์ เราจะทดสอบมันได้ยังไง? ตัวอย่างเช่น: public class Foo { public int methodA() { int val = goOnlineToGetVal(); return val; } private int goOnlineToGetVal() { CloudService c = new CloudService(); int oval = c.getValueFromService(); return oval; } } ถ้าฉันจะทดสอบฟังก์ชั่น: 'methodA ()' มันจะพยายามใช้ 'goOnlineToGetVal ()' ซึ่งจะลองใช้งานออนไลน์อย่างไรก็ตามหากการทดสอบนี้เสร็จสิ้นโดยไม่มีการใช้งาน ฉันจะได้รับความคุ้มครองระดับ 100% โดยไม่ต้องออนไลน์ได้อย่างไร

5
การทดสอบแบบ End-to-end กับการทดสอบแบบยูนิตควรทำการทดสอบแยกกัน
ที่ บริษัท ของเราเรามักจะตรวจสอบให้แน่ใจว่าเราได้ทำการทดสอบแบบครบวงจรสำหรับเว็บไซต์ / แอพเว็บของเรา นั่นหมายความว่าเราเข้าถึง URL กรอกแบบฟอร์มส่งแบบฟอร์มไปยัง URL อื่นและตรวจสอบผลลัพธ์ของหน้า เราทำสิ่งนี้เพื่อทดสอบการตรวจสอบแบบฟอร์มทดสอบว่าเทมเพลต HTML มีตัวแปรบริบทที่ถูกต้อง ฯลฯ นอกจากนี้เรายังใช้มันเพื่อทดสอบตรรกะพื้นฐาน ฉันได้รับการบอกเล่าจากเพื่อนร่วมงานว่าสาเหตุของเรื่องนี้คือเราสามารถลอกออกและเปลี่ยนแปลงการใช้งานพื้นฐาน ณ จุดใดก็ได้ตราบใดที่การทดสอบแบบ end-to-end ผ่าน ฉันสงสัยว่าการแยกประเภทนี้เหมาะสมหรือไม่หรือเป็นเพียงวิธีหลีกเลี่ยงการเขียนการทดสอบสำหรับโค้ดที่เล็กลง?

3
ฉันควรใช้ Debug ยังคงยืนยันในวันนี้?
ฉันเพิ่งเจอรหัสที่เพิ่งเขียนใหม่ซึ่งมีจำนวน Debug.Assert (C #) มากมาย เราควรใช้สิ่งนี้อย่างกว้างขวางแม้ว่าจะใช้ TDD, BDD และการทดสอบหน่วยโดยทั่วไปหรือไม่?

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