คำถามติดแท็ก assert

การยืนยันคือคำสั่งซึ่งจะยกเลิกโปรแกรมเมื่อประเมินว่าเป็นเท็จ โดยทั่วไป Assert จะใช้สำหรับการดีบักและสถานการณ์ที่ไม่ควรเกิดขึ้น

30
คุณยืนยันว่ามีข้อยกเว้นบางอย่างเกิดขึ้นในการทดสอบ JUnit 4 ได้อย่างไร
ฉันจะใช้ JUnit4 โดยใช้สำนวนเพื่อทดสอบว่าบางรหัสผิดพลาดได้อย่างไร ในขณะที่ฉันสามารถทำอะไรเช่นนี้: @Test public void testFooThrowsIndexOutOfBoundsException() { boolean thrown = false; try { foo.doStuff(); } catch (IndexOutOfBoundsException e) { thrown = true; } assertTrue(thrown); } ฉันจำได้ว่ามีคำอธิบายประกอบหรือ Assert.xyz หรือบางสิ่งที่มีความบกพร่องน้อยกว่าและมีจิตวิญญาณของ JUnit มากขึ้นสำหรับสถานการณ์ประเภทนี้
1999 java  exception  junit  junit4  assert 



28
วิธีสร้าง stacktrace โดยอัตโนมัติเมื่อโปรแกรมของฉันขัดข้อง
ฉันกำลังทำงานบน Linux ด้วยคอมไพเลอร์ GCC เมื่อโปรแกรม C ++ ของฉันล่มฉันต้องการให้สแต็คสร้างเทรซ โปรแกรมของฉันถูกเรียกใช้โดยผู้ใช้หลายคนและยังทำงานบน Linux, Windows และ Macintosh (ทุกรุ่นรวบรวมโดยใช้gcc) ฉันต้องการให้โปรแกรมของฉันสามารถสร้างการติดตามสแต็กเมื่อเกิดข้อผิดพลาดและในครั้งต่อไปที่ผู้ใช้เรียกใช้มันจะถามพวกเขาว่าการส่งสแต็กติดตามมาให้ฉันได้หรือไม่ดังนั้นฉันจึงสามารถติดตามปัญหาได้ ฉันสามารถจัดการการส่งข้อมูลให้ฉันได้ แต่ฉันไม่รู้วิธีสร้างสตริงการติดตาม ความคิดใด ๆ
590 c++  gcc  crash  stack-trace  assert 

14
แนวทางปฏิบัติที่ดีที่สุดสำหรับ Python ยืนยัน
มีปัญหาด้านประสิทธิภาพหรือการบำรุงรักษารหัสเมื่อใช้assertเป็นส่วนหนึ่งของรหัสมาตรฐานแทนที่จะใช้เพื่อการดีบักหรือไม่ คือ assert x >= 0, 'x is less than zero' ดีกว่าหรือแย่กว่า if x < 0: raise Exception, 'x is less than zero' นอกจากนี้ยังมีวิธีการตั้งกฎทางธุรกิจเช่นif x < 0 raise errorนั้นที่จะถูกตรวจสอบโดยไม่ต้องทำtry/except/finallyเช่นนั้นตลอดเวลาหากรหัสตลอดเวลาxน้อยกว่า 0 ข้อผิดพลาดจะเพิ่มขึ้นเช่นถ้าคุณตั้งไว้assert x < 0ที่จุดเริ่มต้นของฟังก์ชั่น ที่ไหนxจะกลายเป็น 0 แล้วมีข้อยกเว้นยก

19
วิธีการตรวจสอบว่าวัตถุเป็นรายการหรือ tuple (แต่ไม่ใช่สตริง)?
นี่คือสิ่งที่ผมทำตามปกติในการสั่งซื้อเพื่อให้แน่ใจว่าการป้อนข้อมูลที่เป็นlist/ tuple- strแต่ไม่ได้เป็น เพราะหลายครั้งที่ผมเจอข้อบกพร่องที่ฟังก์ชั่นผ่านstrวัตถุโดยไม่ได้ตั้งใจและฟังก์ชั่นเป้าหมายไม่for x in lstสมมติว่าlstเป็นจริงหรือlisttuple assert isinstance(lst, (list, tuple)) คำถามของฉันคือ: มีวิธีที่ดีกว่าในการบรรลุเป้าหมายนี้หรือไม่?
444 python  list  types  assert 

11
เหตุใด JUnit จึงไม่ให้วิธีการ assertNotEquals
มีใครรู้บ้างไหมว่าทำไม JUnit 4 จึงมีวิธีการassertEquals(foo,bar)แต่ไม่ใช่assertNotEqual(foo,bar) มันมีassertNotSame(ตรงกับassertSame) และassertFalse(ตรงกับassertTrue) assertNotEqualดังนั้นจึงดูเหมือนว่าแปลกที่พวกเขาไม่ได้รำคาญรวมถึง โดยวิธีการที่ฉันรู้ว่า JUnit-addons ให้วิธีการที่ฉันกำลังมองหา ฉันแค่ขอจากความอยากรู้
429 java  junit  assert 




6
ความแตกต่างระหว่าง 2 JUnit Assert
เฟรมเวิร์ก JUnit มี 2 Assertคลาส (ในแพ็กเกจที่แตกต่างกันอย่างเห็นได้ชัด) และวิธีการในแต่ละรายการดูเหมือนจะคล้ายกัน มีใครอธิบายได้ไหมว่าเพราะเหตุใด เรียนผมหมายถึงคือ: และjunit.framework.Assertorg.junit.Assert

25
วิธีการยืนยัน JUnit บนข้อความในตัวบันทึก
ฉันมี code-under-test ที่เรียกใช้ตัวบันทึก Java เพื่อรายงานสถานะ ในรหัสทดสอบ JUnit ฉันต้องการตรวจสอบว่ามีการบันทึกรายการที่ถูกต้องในตัวบันทึกนี้ บางสิ่งบางอย่างตามบรรทัดต่อไปนี้: methodUnderTest(bool x){ if(x) logger.info("x happened") } @Test tester(){ // perhaps setup a logger first. methodUnderTest(true); assertXXXXXX(loggedLevel(),Level.INFO); } ฉันคิดว่าสิ่งนี้สามารถทำได้ด้วยตัวบันทึก (หรือตัวจัดการหรือตัวจัดรูปแบบ) ที่ดัดแปลงเป็นพิเศษ แต่ฉันต้องการใช้โซลูชันที่มีอยู่แล้วอีกครั้ง (และตามจริงแล้วมันไม่ชัดเจนสำหรับฉันเกี่ยวกับวิธีบันทึกที่บันทึกจากเครื่องบันทึก แต่สมมติว่าเป็นไปได้)
206 java  logging  junit  assert 

21
ยืนยันความชั่วร้ายหรือไม่ [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา Goผู้สร้างภาษาเขียน : ไปไม่ได้ให้การยืนยัน พวกเขาสะดวกสบายอย่างปฏิเสธไม่ได้ แต่ประสบการณ์ของเราคือผู้เขียนโปรแกรมใช้พวกเขาเป็นผู้ค้ำยันเพื่อหลีกเลี่ยงการคิดเกี่ยวกับการจัดการข้อผิดพลาดและการรายงานที่เหมาะสม การจัดการข้อผิดพลาดที่เหมาะสมหมายความว่าเซิร์ฟเวอร์ดำเนินการต่อหลังจากข้อผิดพลาดที่ไม่ร้ายแรงแทนที่จะล้มเหลว การรายงานข้อผิดพลาดที่เหมาะสมหมายความว่าข้อผิดพลาดนั้นเกิดขึ้นโดยตรงและตรงประเด็นช่วยให้โปรแกรมเมอร์ไม่สามารถตีความการติดตามข้อผิดพลาดจำนวนมากได้ ข้อผิดพลาดที่แม่นยำมีความสำคัญอย่างยิ่งเมื่อโปรแกรมเมอร์ที่เห็นข้อผิดพลาดไม่คุ้นเคยกับรหัส ความคิดเห็นของคุณเกี่ยวกับเรื่องนี้คืออะไร?
199 c++  c  error-handling  go  assert 

9
ฉันจะตรวจสอบ (ที่รันไทม์) ได้อย่างไรถ้าคลาสหนึ่งเป็นคลาสย่อยของอีกคลาส?
สมมติว่าฉันมีคลาส Suit และคลาสย่อยสี่ชุด: Heart, Spade, Diamond, Club class Suit: ... class Heart(Suit): ... class Spade(Suit): ... class Diamond(Suit): ... class Club(Suit): ... ฉันมีวิธีการที่ได้รับชุดสูทเป็นพารามิเตอร์ซึ่งเป็นวัตถุคลาสไม่เป็นตัวอย่าง แม่นยำมากขึ้นอาจได้รับเพียงหนึ่งในสี่ค่า: Heart, Spade, Diamond, Club ฉันจะยืนยันซึ่งยืนยันสิ่งนั้นได้อย่างไร สิ่งที่ต้องการ: def my_method(suit): assert(suit subclass of Suit) ... ฉันใช้ Python 3
197 python  subclass  assert 


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