簡體   English   中英

如何使用junit或testng為Queue接口類創建簡單的單元測試?

[英]How do I create a simple unit test using junit or testng for a Queue interface class?

我是Java的新手,但我正在盡我所能盡快學習。 我使用隊列接口在Eclipse中創建了一個類,並創建了一個元素數組(在我的情況下是動物)。 我向該數組添加了一個名為“ tiger”的新元素。

當我想使用testng / junit創建一個新類並嘗試添加一個簡單的單元測試來檢查新元素“ tiger”是否正確添加到數組列表時,我陷入了困境。 我的隊列代碼如下:

public static void main(String[] args) {
    String animals[] = {"cat","dog","pony","horse","cheetah"};
    Queue<String> queue = new LinkedList<String>();
    Collections.addAll(queue, animals);
    System.out.println(queue);
    queue.add("tiger");
    System.out.println(queue);}

請幫助,我很樂意提供任何建議。

從您的代碼中,我建議:

  1. 首先,將主代碼放入另一個方法中,如果可能的話,放入另一個類中。
  2. 不是必需的,但要避免新方法中的靜態。
  3. 了解有關單元測試的信息
  4. 使用jUnit5進行單元測試,非常受歡迎
  5. 也許,在下面的更多內容中,您想閱讀有關雙打的內容(例如Mockito)

就您而言,我可以告訴您您的代碼不是“測試友好”的,您想使用元素自己的方法或使用類似Mockito的方法來測試元素是否在Queue中,以驗證是否使用值調用了add您想測試,但要理解這一點,您應該了解有關雙打,模擬和存根的更多信息。

像這樣:

@Test
public void test() {
    //Given
    String animals[] = {"cat","dog","pony","horse","cheetah"};
    Queue<String> queue = new LinkedList<String>();
    Collections.addAll(queue, animals);

    //When
    queue.add("tiger");

    //Then
    assertThat(queue, hasSize(6));
    assertEquals("tiger",((LinkedList<String>) queue).getLast());
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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