[英]How to use Mockito in JUnit test?
要測試的類是一個自制的 LinkedList。 在一種特定的方法中,我只想使用 Mockito 來避免向列表中添加額外的元素,這可能會影響其他測試方法。 但我不相信我以正確的方式使用它。 有什么建議?
public class AppTest {
private LinkedList<Integer> link;
@Before
public void setUp() {
//just want to populate the list with 4 elements for all tests
link=mock(com.sed.MyLinkedList.LinkedList.class);
link.add(111);
link.add(222);
link.add(333);
link.add(444);
}
@Test
public void testApp() {
//add extra elements here for this specific test, shouldn't be really added to list
link.add(2, 900);
//here 'when().thenReturn()' is useless
when(link.toString()).thenReturn("[111, 222, 900, 333, 444]");
assertEquals("[111, 222, 900, 333, 444]",link.toString());
}
@Test(expected = ArrayIndexOutOfBoundsException.class)
public void testAppException() {
link.add(5, 900);
}
}
在你的測試中,你只是在測試一個模擬,而不是你的班級。 對於您提到的內容,只需更改 setup 方法以實例化真正的類。
@Before
public void setUp() {
//just want to populate the list with 4 elements for all tests
link = new com.sed.MyLinkedList.LinkedList();
link.add(111);
link.add(222);
link.add(333);
link.add(444);
}
在每次測試之前,都會調用 setup 方法,因此您將擁有一個包含 4 個元素的新列表。
當被測試的類使用協作者時使用模擬。 背后的想法是隔離類,因此您可以確定任何錯誤都來自被測類而不是協作者。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.