簡體   English   中英

如何在 JUnit 測試中使用 Mockito?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM