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

กรอบการทดสอบหน่วยยอดนิยมสำหรับ Java และ Scala เวอร์ชันล่าสุดคือ JUnit 5 รองรับการทดสอบตามคำอธิบายประกอบแบบย่อและพารามิเตอร์ พิจารณาใช้ร่วมกับแท็ก Java หรือ Scala เพื่อระบุกรณีการใช้งานของคุณ

5
จำลองตัวสร้างด้วยพารามิเตอร์
ฉันมีคลาสดังนี้: public class A { public A(String test) { bla bla bla } public String check() { bla bla bla } } ตรรกะในตัวสร้างA(String test)และcheck()เป็นสิ่งที่ฉันพยายามล้อเลียน ฉันต้องการโทรใด ๆ เช่น: ผลตอบแทนสตริงหุ่นnew A($$$any string$$$).check()"test" ฉันเหนื่อย: A a = mock(A.class); when(a.check()).thenReturn("test"); String test = a.check(); // to this point, everything works. test shows as "tests" …

8
จะใช้ JUnit และ Hamcrest ร่วมกันได้อย่างไร?
ฉันไม่เข้าใจว่า JUnit 4.8 ควรทำงานกับ Hamcrest matchers ได้อย่างไร มี matchers บางที่กำหนดไว้ด้านในเป็นในjunit-4.8.jar org.hamcrest.CoreMatchersในขณะเดียวกันก็มีผู้จับคู่อื่น ๆhamcrest-all-1.1.jarเข้าorg.hamcrest.Matchersมา แล้วจะไปไหนดี? ฉันจะรวม hamcrest JAR ไว้ในโปรเจ็กต์อย่างชัดเจนและไม่สนใจตัวจับคู่ที่ JUnit จัดหาให้หรือไม่ โดยเฉพาะอย่างยิ่งฉันสนใจเรื่องการempty()จับคู่และหาไม่พบในขวดเหล่านี้ ฉันต้องการอย่างอื่น? :) และคำถามเชิงปรัชญา: ทำไม JUnit รวมorg.hamcrestแพ็คเกจไว้ในการแจกจ่ายของตัวเองแทนที่จะสนับสนุนให้เราใช้ห้องสมุดแฮมเครสต์ดั้งเดิม
89 java  junit  hamcrest 

6
JUnit 4 vs TestNG - อัปเดต 2013 - 2014 [ปิด]
ปิด . คำถามนี้เป็นคำถามความคิดเห็นตาม ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบได้ด้วยข้อเท็จจริงและการอ้างอิงโดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ปรับปรุงคำถามนี้ JUnit 4 และ TestNG เคยเทียบเคียงกัน ข้อดีข้อเสียของกรอบการทดสอบทั้งสองคืออะไร?

10
วิธีทดสอบคลาสนามธรรมใน Java ด้วย JUnit
ฉันยังใหม่กับการทดสอบ Java ด้วย JUnit ฉันต้องทำงานกับ Java และฉันต้องการใช้การทดสอบหน่วย ปัญหาของฉันคือฉันมีคลาสนามธรรมที่มีวิธีนามธรรม แต่มีบางวิธีที่ไม่เป็นนามธรรม ฉันจะทดสอบคลาสนี้ด้วย JUnit ได้อย่างไร? ตัวอย่างรหัส (ง่ายมาก): abstract class Car { public Car(int speed, int fuel) { this.speed = speed; this.fuel = fuel; } private int speed; private int fuel; abstract void drive(); public int getSpeed() { return this.speed; } public int getFuel() …

7
ย้อนกลับธุรกรรมหลังจาก @Test
ก่อนอื่นฉันพบเธรดจำนวนมากใน StackOverflow เกี่ยวกับเรื่องนี้ แต่ไม่มีสิ่งใดที่ช่วยฉันได้จริงๆขอโทษที่ถามคำถามที่อาจซ้ำกัน ฉันกำลังทำการทดสอบ JUnit โดยใช้การทดสอบสปริงโค้ดของฉันมีลักษณะเช่นนี้ @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = {}) public class StudentSystemTest { @Autowired private StudentSystem studentSystem; @Before public void initTest() { // set up the database, create basic structure for testing } @Test public void test1() { } ... } ปัญหาของฉันคือฉันต้องการให้การทดสอบของฉันไม่มีผลต่อการทดสอบอื่น ๆ ดังนั้นฉันต้องการสร้างบางสิ่งเช่นย้อนกลับสำหรับการทดสอบแต่ละครั้ง ฉันค้นหาสิ่งนี้มามากมาย แต่ฉันไม่พบอะไรเลย ฉันใช้ Hibernate …

4
มีชุดไฟล์“ Lorem ipsums” สำหรับทดสอบปัญหาการเข้ารหัสอักขระหรือไม่
สำหรับการจัดวางเรามีข้อความ "Lorem ipsum" ที่มีชื่อเสียงเพื่อทดสอบว่ามีลักษณะอย่างไร สิ่งที่ฉันกำลังมองหาคือชุดไฟล์ที่มีข้อความที่เข้ารหัสด้วยการเข้ารหัสต่างๆที่ฉันสามารถใช้ในการทดสอบ JUnit เพื่อทดสอบวิธีการบางอย่างที่จัดการกับการเข้ารหัสอักขระเมื่ออ่านไฟล์ข้อความ ตัวอย่าง: มีISO 8859-1ไฟล์Windows-1252ทดสอบที่เข้ารหัสและไฟล์ทดสอบที่เข้ารหัส ของ Windows 1252 จะเรียกความแตกต่างในภูมิภาค 80 16 - 9F 16 กล่าวอีกนัยหนึ่งคือต้องมีอักขระอย่างน้อยหนึ่งตัวของภูมิภาคนี้เพื่อแยกความแตกต่างจาก ISO 8859-1 ชุดไฟล์ทดสอบที่ดีที่สุดอาจเป็นที่ที่ไฟล์ทดสอบสำหรับการเข้ารหัสแต่ละรายการมีอักขระทั้งหมดเพียงครั้งเดียว แต่บางทีฉันอาจไม่รู้ถึง sth - เราทุกคนชอบสิ่งที่เข้ารหัสนี้ใช่มั้ย? :-) มีชุดไฟล์ทดสอบสำหรับปัญหาการเข้ารหัสอักขระหรือไม่?

13
รันการทดสอบ JUnit เดียวใน Eclipse
หากฉันมีชุดทดสอบที่มีการทดสอบหลายชุดเมื่อฉันพยายามเรียกใช้การทดสอบหน่วยเดียวไม่ว่าจะจากเมนูบริบทของตัวแก้ไขโค้ดหรือจากมุมมอง JUnit ดูเหมือนว่าจะยืนยันที่จะเรียกใช้ชุดการทดสอบทั้งหมดเสมอแทนที่จะเป็น การทดสอบเดี่ยว มีวิธีปิดการใช้งานเพื่อเปลี่ยนลักษณะการทำงานนี้หรือไม่เพื่อที่ฉันจะได้ขอให้เรียกใช้และทดสอบเท่านั้น
85 eclipse  junit 

4
ฉันจะกำหนดค่า log4j ในคลาสทดสอบ JUnit ได้ที่ไหน
เมื่อดูกรณีทดสอบ JUnit ล่าสุดที่ฉันเขียนฉันเรียกว่าวิธี BasicConfigurator.configure () ของ log4j ภายในตัวสร้างคลาส ทำงานได้ดีสำหรับการรันคลาสเดียวนั้นจากคำสั่ง "run as JUnit test case" ของ Eclipse แต่ฉันรู้ว่ามันไม่ถูกต้อง: ฉันค่อนข้างแน่ใจว่าชุดทดสอบหลักของเราเรียกใช้คลาสเหล่านี้ทั้งหมดจากกระบวนการเดียวดังนั้นการกำหนดค่า log4j ควรจะเกิดขึ้นที่ใดที่หนึ่ง แต่ฉันยังคงต้องเรียกใช้กรณีทดสอบด้วยตัวเองในบางครั้งซึ่งในกรณีนี้ฉันต้องการกำหนดค่า log4j ฉันควรวางการเรียกการกำหนดค่าไว้ที่ใดเพื่อให้รันเมื่อกรณีทดสอบทำงานแบบสแตนด์อโลน แต่ไม่ใช่เมื่อกรณีทดสอบถูกเรียกใช้เป็นส่วนหนึ่งของชุดใหญ่
85 java  logging  junit  log4j 

6
ยืนยันกับ JUnit Assertions
วันนี้ฉันเห็นกรณีการทดสอบ JUnit ที่มีการยืนยัน java แทนการยืนยัน JUnit - มีข้อดีหรือข้อเสียที่สำคัญที่จะชอบมากกว่าอีกแบบหนึ่งหรือไม่?

11
Before และ After Suite Execution hook ใน jUnit 4.x
ฉันกำลังพยายามตั้งค่าล่วงหน้าสำหรับชุดของการทดสอบการรวมโดยใช้ jUnit 4.4 เพื่อดำเนินการทดสอบ การฉีกขาดจะต้องทำงานได้อย่างน่าเชื่อถือ ฉันมีปัญหาอื่น ๆ กับ TestNG ดังนั้นฉันจึงต้องการพอร์ตกลับไปที่ jUnit มี hooks ใดบ้างสำหรับการดำเนินการก่อนที่จะรันการทดสอบใด ๆ และหลังจากการทดสอบทั้งหมดเสร็จสิ้น หมายเหตุ: เรากำลังใช้ maven 2 สำหรับงานสร้างของเรา ฉันได้ลองใช้ maven pre-& post-integration-testphases แล้ว แต่ถ้าการทดสอบล้มเหลว maven จะหยุดและไม่ทำงานpost-integration-testซึ่งก็ไม่ได้ช่วยอะไร


10
ทดสอบ JAX-RS Web Service หรือไม่
ฉันกำลังมองหาวิธีสร้างการทดสอบอัตโนมัติสำหรับบริการเว็บที่ใช้JAX-RS (Java API สำหรับ RESTful Web Services) โดยพื้นฐานแล้วฉันต้องการวิธีส่งปัจจัยการผลิตบางอย่างและตรวจสอบว่าฉันได้รับคำตอบที่คาดหวัง ฉันต้องการทำผ่าน JUnit แต่ฉันไม่แน่ใจว่าจะทำได้อย่างไร คุณใช้แนวทางใดในการทดสอบบริการบนเว็บของคุณ อัปเดต: ดังที่ entzik ชี้ให้เห็นการแยกบริการเว็บออกจากตรรกะทางธุรกิจทำให้ฉันสามารถทดสอบตรรกะทางธุรกิจได้ อย่างไรก็ตามฉันต้องการทดสอบรหัสสถานะ HTTP ที่ถูกต้องเป็นต้น

3
SpringRunner vs SpringBootTest
ในการทดสอบหน่วยอะไรคือความแตกต่างระหว่าง@Runwith(SpringRunner.class)& @SpringBootTest? คุณสามารถอธิบายให้ฉันฟังถึงกรณีการใช้งานของแต่ละคนได้หรือไม่?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.