在Eclipse中使用Junit测试代码

一、在项目中加入Junit库

在这里插入图片描述
右击项目文件,在选项中选择BuildPath这一选项。
在这里插入图片描述
选择Add Libbraries选项,在其中找到Junit,可以自行选择需要的Junit版本。
在这里插入图片描述

当你的项目中除了之前的基础库文件,还出现了Junit库,说明已经添加完成了。
在这里插入图片描述
二、Junit代码的构建

    @Test
    public void testSet()
    {
    	Graph<String> current=emptyInstance();
    	//测试错误输入负的权值
    	assertEquals(-1,current.set("A", "B", -1));
    	assertEquals(false,current.vertices().contains("A"));
    	assertEquals(false,current.vertices().contains("B"));
    	assertEquals(false,current.targets("A").containsKey("B"));
    	//测试权值不为0,图中没有这两点也没有这条边的情况,返回值应该是零,并且两个点应该已经被插入到图中,这条边也已经被插入到图中
    	assertEquals(0,current.set("A", "B", 1));
    	assertEquals(true,current.vertices().contains("A"));
    	assertEquals(true,current.vertices().contains("B"));
    	assertEquals(true,current.targets("A").containsKey("B"));
    	//测试权值不为零,图中已经存在这两点的情况,返回值应该是1(同时完成对先前加入的边的权值的查看)
    	assertEquals(1,current.set("A", "B", 2));
    	//测试权值为0,图中已经存在这两点的情况,返回值应该是2,并且这条边已经被删除
    	assertEquals(2,current.set("A", "B", 0));
      	assertEquals(false,current.targets("A").containsKey("B"));
    	//测试权值不为零,图中有这两个点,但是没有这样的边的情况,返回值应该是0,并且这条边已经被添加
    	assertEquals(0,current.set("A", "B", 2));
    	assertEquals(true,current.targets("A").containsKey("B"));
    	//测试权值为0,图中没有这两点也没有这条边的情况,返回值应该是0,但是同时没有对这两个点进行插入操作,也没有对这条边进行插入
    	assertEquals(0,current.set("C", "D", 0));
    	assertEquals(false,current.vertices().contains("C"));
    	assertEquals(false,current.vertices().contains("D"));
    	assertEquals(false,current.targets("C").containsKey("D"));
    }

以我之前对构建的图的类为例说明Junit代码的基本思路。
首先对于任何用于测试的函数,都需要加上@Test标签,否则Eclipse不会识别你的测试方法,运行时不会执行。
然后重点使用assertEquals函数,这个函数前一个参数是给定的正确结果,后一个参数是你要测试方法的返回结果。只有当两者相同,测试的结果才会是正确的。
在这里插入图片描述
正确的结果将被标注为绿色,红色代表有运行错误,蓝色代表assertEquals结果出现错误,可以进一步进行检查。
比如以下这个例子
在这里插入图片描述
这一测试出现蓝色,双击这一内容进行检查。
在这里插入图片描述
发现以下错误信息。
在这里插入图片描述
双击上面一行进一步对比结果。
在这里插入图片描述
可以看到详细的比较结果,然后返回查看代码的运行情况,进行debug。

3、使用注意
(1)当使用Junit时如果代码中包含有exit函数,测试程序会直接卡死,网上有一些处理方式,详细可以查看
https://blog.csdn.net/weixin_43872188/article/details/104781255
(2)如果函数没有返回值可以进行比较,可以在类中定义相关的观察者方法,比如重写toString函数,当成检查的方式。
(3)测试类也可以进行继承,并且子类如果没有重写父类中的测试函数,子类会自动执行父类的测试。
举例:
在这里插入图片描述
可以看到这一类中只写了三个测试方法。
在这里插入图片描述
运行后可以看到执行了一些其他函数,而这些函数恰恰就是父类中的测试函数。
在这里插入图片描述

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值