为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 junit 或 testng 为 Queue 接口类创建简单的单元测试?

如何使用 junit 或 testng 为 Queue 接口类创建简单的单元测试?

噜噜哒 2022-05-12 18:43:45
我是 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);}请帮忙,我很乐意提供任何建议。
查看完整描述

2 回答

?
当年话下

TA贡献1890条经验 获得超9个赞

像这样的东西:


@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());

}


查看完整回答
反对 回复 2022-05-12
?
繁华开满天机

TA贡献1816条经验 获得超4个赞

根据您的代码,我建议:

  1. 首先,将主代码放在另一个方法中,如果可能的话,放在另一个类中。

  2. 不是要求,但要避免新方法中的静态。

  3. 阅读单元测试

  4. 使用 jUnit5 进行单元测试,非常流行

  5. 可能,在下面,您想阅读有关双打的信息(例如 Mockito)

在您的情况下,我可以告诉您您的代码不是“测试友好”,您想测试元素是否在队列中,使用它自己的方法,或者使用类似 Mockito 的东西来验证 add 是用值调用的你想测试,但为了让你理解这一点,你应该了解更多关于双打、模拟、存根的知识。


查看完整回答
反对 回复 2022-05-12
  • 2 回答
  • 0 关注
  • 93 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信