繁体   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