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

Mockito เป็นกรอบการเยาะเย้ยสำหรับ Java มันเป็นแรงบันดาลใจจาก EasyMock แต่มีจุดมุ่งหมายเพื่อลดความยุ่งยากจำลองการตรวจสอบและการใช้เครื่องมือยิ่งขึ้น

1
PowerMockito จำลองวิธีการคงที่เดียวและส่งคืนวัตถุ
ฉันต้องการจำลองวิธีการคงที่ m1 จากคลาสซึ่งมี 2 วิธีแบบคงที่คือ m1 และ m2 และฉันต้องการให้เมธอด m1 ส่งคืนวัตถุ ฉันลองทำดังต่อไปนี้ 1) PowerMockito.mockStatic(Static.class, new Answer<Long>() { @Override public Long answer(InvocationOnMock invocation) throws Throwable { return 1000l; } }); นี่คือการเรียกทั้ง m1 และ m2 ซึ่งมีประเภทการส่งคืนที่แตกต่างกันดังนั้นจึงมีข้อผิดพลาดที่ไม่ตรงกัน 2) PowerMockito.when(Static.m1(param1, param2)).thenReturn(1000l); แต่จะไม่ถูกเรียกเมื่อเรียกใช้ m1 3) PowerMockito.mockPartial(Static.class, "m1"); ให้รวบรวมข้อผิดพลาดที่ไม่สามารถใช้ได้ mockPartial ซึ่งผมได้จากhttp://code.google.com/p/powermock/wiki/MockitoUsage

7
Mockito - @Spy vs @Mock
Mockito - ฉันเข้าใจว่าสายลับเรียกวิธีการจริงบนวัตถุในขณะที่การล้อเลียนเรียกวิธีการบนวัตถุคู่ นอกจากนี้ควรหลีกเลี่ยงสายลับเว้นแต่จะมีกลิ่นรหัส อย่างไรก็ตามสายลับทำงานอย่างไรและฉันควรใช้มันจริงเมื่อใด ต่างจากล้อเลียนอย่างไร?

7
Mockito วิธีล้อเลียนเฉพาะการเรียกใช้วิธีการของ superclass
ฉันใช้ Mockito ในการทดสอบบางอย่าง ฉันมีชั้นเรียนต่อไปนี้: class BaseService { public void save() {...} } public Childservice extends BaseService { public void save(){ //some code super.save(); } } ฉันต้องการที่จะเยาะเย้ยเฉพาะสายที่สอง ( super.save) ChildServiceของ โทรครั้งแรกต้องโทรตามวิธีจริง มีวิธีทำไหม?
97 java  mockito 

17
เมื่อฉันเรียกใช้การทดสอบ mockito เกิดข้อยกเว้น WrongTypeOfReturnValue
รายละเอียดข้อผิดพลาด: org.mockito.exceptions.misusing.WrongTypeOfReturnValue: Boolean cannot be returned by updateItemAttributesByJuId() updateItemAttributesByJuId() should return ResultRich This exception might occur in wrongly written multi-threaded tests. Please refer to Mockito FAQ on limitations of concurrency testing. รหัสของฉัน: @InjectMocks protected ItemArrangeManager arrangeManagerSpy = spy(new ItemArrangeManagerImpl()); @Mock protected JuItemWriteService juItemWriteService; when(arrangeManagerSpy .updateItemAttributes(mapCaptor.capture(), eq(juId), eq(itemTO.getSellerId()))) .thenReturn(false); ในขณะที่คุณสามารถดูฉันโทรwhenบนupdateItemAttributes(ซึ่งไม่กลับboolean) updateItemAttributesByJuIdไม่ได้อยู่ใน …
96 java  mockito 

23
ไม่สามารถเริ่มต้นปลั๊กอิน: interface org.mockito.plugins.MockMaker
ฉันได้รับข้อยกเว้นดังต่อไปนี้เมื่อเริ่มการทดสอบ: Testcase: treeCtorArgumentTest(com.xythos.client.drive.cachedtree.CachedTreeTest): Caused an ERROR Could not initialize plugin: interface org.mockito.plugins.MockMaker java.lang.IllegalStateException: Could not initialize plugin: interface org.mockito.plugins.MockMaker at org.mockito.internal.configuration.plugins.PluginLoader$1.invoke(PluginLoader.java:66) at com.sun.proxy.$Proxy7.isTypeMockable(Unknown Source) at org.mockito.internal.util.MockUtil.typeMockabilityOf(MockUtil.java:29) at org.mockito.internal.util.MockCreationValidator.validateType(MockCreationValidator.java:22) at org.mockito.internal.creation.MockSettingsImpl.validatedSettings(MockSettingsImpl.java:168) at org.mockito.internal.creation.MockSettingsImpl.confirm(MockSettingsImpl.java:162) at org.mockito.internal.MockitoCore.mock(MockitoCore.java:64) at org.mockito.Mockito.mock(Mockito.java:1687) at org.mockito.Mockito.mock(Mockito.java:1600) at com.xythos.client.drive.cachedtree.CachedTreeTest.setUp(CachedTreeTest.java:51) Caused by: java.lang.NoClassDefFoundError: net/bytebuddy/dynamic/loading/ClassLoadingStrategy at org.mockito.internal.creation.bytebuddy.SubclassByteBuddyMockMaker.<init>(SubclassByteBuddyMockMaker.java:33) at org.mockito.internal.creation.bytebuddy.ByteBuddyMockMaker.<init>(ByteBuddyMockMaker.java:22) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) …
94 mockito 

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" …

4
การโทรกลับแบบจำลองและการรับค่าอาร์กิวเมนต์
ฉันไม่มีโชคเลยที่ได้รับ Mockito เพื่อจับค่าอาร์กิวเมนต์ของฟังก์ชัน! ฉันล้อเลียนดัชนีของเครื่องมือค้นหาและแทนที่จะสร้างดัชนีฉันแค่ใช้แฮช // Fake index for solr Hashmap<Integer,Document> fakeIndex; // Add a document 666 to the fakeIndex SolrIndexReader reader = Mockito.mock(SolrIndexReader.class); // Give the reader access to the fake index Mockito.when(reader.document(666)).thenReturn(document(fakeIndex(666)) ฉันไม่สามารถใช้อาร์กิวเมนต์ตามอำเภอใจได้เนื่องจากฉันกำลังทดสอบผลลัพธ์ของการสืบค้น (เช่นเอกสารที่ส่งคืน) ในทำนองเดียวกันฉันไม่ต้องการระบุค่าเฉพาะและมีบรรทัดสำหรับแต่ละเอกสาร! Mockito.when(reader.document(0)).thenReturn(document(fakeIndex(0)) Mockito.when(reader.document(1)).thenReturn(document(fakeIndex(1)) .... Mockito.when(reader.document(n)).thenReturn(document(fakeIndex(n)) ผมมองไปที่ส่วนของการเรียกกลับในการใช้ Mockitoหน้า น่าเสียดายที่มันไม่ใช่ Java และฉันไม่สามารถตีความว่ามันทำงานใน Java ได้ แก้ไข (เพื่อความชัดเจน): ฉันจะให้ …

3
วิธีจับคู่ null ที่ส่งผ่านไปยังพารามิเตอร์ของ Class <T> กับ Mockito
ฉันมีวิธีการดังนี้: public &lt;T&gt; method(String s, Class&lt;T&gt; t) {...} ฉันต้องตรวจสอบว่าnullส่งผ่านไปยังอาร์กิวเมนต์ที่สองเมื่อใช้ตัวจับคู่กับพารามิเตอร์อื่นฉันได้ทำสิ่งนี้แล้ว: @SuppressWarnings("unchecked") verify(client).method(eq("String"), any(Class.class)); แต่มีวิธีที่ดีกว่า (โดยไม่มีคำเตือนการระงับ) หรือไม่? Tแสดงถึงประเภทการส่งคืนของวิธีการอื่น ๆ ซึ่งบางครั้งvoidและในกรณีเหล่านี้nullจะถูกส่งเข้ามา

3
Mockito mocks ชั้นสุดท้ายในประเทศ แต่ล้มเหลวในเจนกินส์
ฉันได้เขียนการทดสอบหน่วยสำหรับวิธีการคงที่ วิธีการคงที่ใช้เวลาเพียงหนึ่งข้อโต้แย้ง ประเภทของการโต้แย้งเป็นชั้นสุดท้าย ในแง่ของรหัส: public class Utility { public static Optional&lt;String&gt; getName(Customer customer) { // method's body. } } public final class Customer { // class definition } ดังนั้นสำหรับUtilityชั้นเรียนฉันได้สร้างชั้นทดสอบUtilityTestsซึ่งฉันได้เขียนข้อสอบสำหรับวิธีนี้, getName. กรอบการทดสอบหน่วยเป็นTestNGMockitoและห้องสมุดเยาะเย้ยที่ใช้คือ ดังนั้นการทดสอบทั่วไปมีโครงสร้างดังต่อไปนี้: public class UtilityTests { @Test public void getNameTest() { // Arrange Customer customerMock = Mockito.mock(Customer.class); Mockito.when(...).thenReturn(...); // Act …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.