当前位置: 首页 > news >正文

汕头站扩建天津百度推广公司

汕头站扩建,天津百度推广公司,邢台建设企业网站,html5购物网站模板参考文章: https://www.cnblogs.com/zhukaile/p/14514238.html,https://blog.csdn.net/qq_36448800/article/details/126438339 一、什么是单元测试 在平时的开发当中,一个项目往往包含了大量的方法,可能有成千上万个。如何去保…

参考文章: https://www.cnblogs.com/zhukaile/p/14514238.html,https://blog.csdn.net/qq_36448800/article/details/126438339

一、什么是单元测试

在平时的开发当中,一个项目往往包含了大量的方法,可能有成千上万个。如何去保证这些方法产生的结果是我们想要的呢?当然了,最容易想到的一个方式,就是我们通过System.out来输出我们的结果,看看是不是满足我们的需求,但是项目中这些成千上万个方法,我们总不能在每一个方法中都去输出一遍嘛。这也太枯燥了。这时候用我们的单元测试框架junit就可以很好地解决这个问题。Junit是一个单元测试框架

二、使用

注意:用Junit进行单元测试必须满足以下条件

1、每一个测试方法上使用@Test进行修饰
2、每一个测试方法必须使用public void 进行修饰
3、每一个测试方法不能携带参数
4、测试代码和源代码在两个不同的项目路径下
5、测试类的包应该和被测试类保持一致
6、测试单元中的每个方法必须可以独立测试

1.Junit的jar包导入

如果不是maven项目,直接网上下载junit的jar包,如果是maven项目,直接导入maven依赖,版本改成自己需要。但是要注意,4.10以上版本的junit要配合hamcrest-core的jar包使用。这里我建议直接用5的,因为有时候用四会报错 java @Test 使用不了

如需详细了解为什么,可以参考我的另一篇文章:https://blog.csdn.net/munangs/article/details/126671706 进去直接使用ctrl+f搜索junit即可

<dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter-api</artifactId><version>5.6.2</version>
</dependency>

2.Junit简单使用

import org.junit.*;public class Tests {@Testpublic void testAdd(){System.out.println("test1");}
}

左击方法名,点击运行按钮,选择debug模式,运行结果如图
在这里插入图片描述

3.对方法进行断言测试

这里写了三个方法,主要对以下方法用断言进行测试,代码如下

public class Method {public int add(int a,int b){return a+b;}public int delete(int a,int b){return a-b;}public boolean isTrue(){return 2==1;}
}

1)、assertEquals

断言判断是否相等,这个方法里面可以又很多参数,一般根据我们的需要输入相应的参数
在这里插入图片描述

在这里选择assertEquals(Object expected,Object actual),expected指的是期望得到的值,actual指实际返回的结果,如果期望值和实际结果不相等,就会抛异常,即断言失败。我们对add方法进行测试,代码如下

public class Tests {@Testpublic void testAdd(){Assert.assertEquals(3,new Method().add(3,1));System.out.println("test1");}
}

输入值和期望值不一样,这里抛出异常
在这里插入图片描述

2、assertTrue/assertFalse

该断言用来验证给定的布尔型值是否为真,假如结果为假,则验证失败
方法: assertTrue ([String message],Boolean condition)
message是个可选的消息,假如提供,将会在发生错误时报告这个消息。
这里测试isTrue方法,测试代码如下:

public class Tests {@Testpublic void testTrue(){Assert.assertTrue("不相等",new Method().isTrue());System.out.println("test1");}
}

很明显,测试代码里面返回的是false,所以会抛出message消息

assertFalse方法同上,只是判断的结果相反,如果boolean中返回为false则不抛异常,返回为true抛出message消息

在这里插入图片描述

3)、assertNull

这个方法很好理解,就不写专用的方法来进行演示。用于判断函数返回是否为空
方法:assertNotNull([String message],Object object)
message即返回为空之后的打印的消息,object是判断的方法
测试代码如下:

public class Tests {@Testpublic void testTrue(){Assert.assertNull("不为空","abcde");System.out.println("test1");}
}

测试结果:如果判断的对象不为空,则会抛出message消息,为空则通过测试
在这里插入图片描述

4)、assertSame

该断言用来验证expected参数和actual参数所引用的是否是同一个对象,假如不是,则验证失败。相应地,也存在验证不是同一个对象的断言。(和assertEquals区别在于,这个用于判断实际结果是否与期望结果的引用内存地址相同,类似于==,而assertEquals类似于equals方法)
 方法:assertNotSame ([String message], expected,actual)
 message也是断言失败后打印的消息,expected是期望值,actual是实际值
 测试代码:

public class Tests {@Testpublic void testTrue(){Assert.assertSame("不相等",2,4-3);System.out.println("test1");}
}

测试结果:2肯定是不等于1的,这个时候会打印错误信息。
在这里插入图片描述

4).运行流程

如果我们要在每个测试之前打开数据库,又关闭数据库,这样如果在每个方法里面写流程会非常麻烦,这个时候就有专有的测试方法运行前后进行操作的方法。其中beforeClass和afterClass方法必须是静态方法

@BeforeClass (setUpBeforeClass方法):
注解静态方法;在运行测试类时最先运行且只执行一次。
@AfterClass (tearDownAfterClass方法):
注解静态方法;在运行测试类时最后个运行且只执行一次。
@Before(setUp方法)
在执行每个@Test之前执行,每个@Test执行前都会执行@Before。
@Test
要执行的测试单元
@After(tearDown方法)
在执行每个@Test之后执行,每个@Test执行结束后都会执行@After
public class Tests {@Testpublic void testAdd(){System.out.println("test1");}@Testpublic void testDelete(){System.out.println("test2");}@BeforeClasspublic static void beforeClass(){System.out.println("beforeClass.....");}@Afterpublic void after(){System.out.println("after......");}@AfterClasspublic static void afterClass(){System.out.println("afterClass....");}@Beforepublic void before(){System.out.println("before.....");}
}

打印结果:
在这里插入图片描述

这里我们可以看到它的运行流程是这样的:

在这里插入图片描述

5)、junit测试套件(批量测试)

有的时候我们可能不止要对一个类进行测试,这个时候就要用到测试套件,两个测试类如下
Tests:

public class Tests {@Testpublic void testAdd(){System.out.println("test1");}
}

Tests1

import org.junit.Test;public class Tests1 {@Testpublic void testDelete(){System.out.println("test2");}
}

套件类Combine:

import org.junit.runner.RunWith;
import org.junit.runners.Suite;@RunWith(Suite.class)//用于更改测试运行器
@Suite.SuiteClasses({Tests.class,Tests1.class})//将要测试的类作为数组传入到@Suite.SuiteClasses({})中
public class Combine {/**注意,该类中不要写任何代码**/
}

直接点击类名进行Debug
运行结果如图:
在这里插入图片描述

三、SpringBoot Test测试类的使用

参考我的另一篇文章:SpringBoot Test测试类的使用

http://www.yidumall.com/news/108326.html

相关文章:

  • 网站文件夹目录信息推广平台有哪些
  • 芜湖建设路小学网站武汉seo优化
  • 前端开发全日制培训班广州seo网站公司
  • 建设社区服务网站的论文google框架三件套
  • 淘宝客网站如何让做google搜索优化方法
  • 手机网站支持微信支付百度收录的网页数量
  • 政务公开网站项目建设书专业seo培训
  • 温州网站设计力推亿企帮免费行情网站的推荐理由
  • 织梦做的网站织梦修改网页找一个免费域名的网站
  • 腾讯域名注册网站aso优化排名推广
  • 钦州网站制作郑州网站
  • 幼儿园网站怎样建设永久免费的网站服务器有哪些软件
  • 淄博做网站怎样优化标题关键词
  • 自己做个网站好还是做别人会员好seo教程免费
  • 怎样开发公司的网站建设成年培训班有哪些
  • 重庆公司做网站网页制作成品模板网站
  • 好推建站淘宝关键词热度查询工具
  • 网站节日设计最好的网络营销软件
  • 常州哪家做网站便宜品牌运营包括哪些内容
  • 微信小程序网站建设哪家好seocui cn
  • 招聘wordpress网站高手兼职网络营销的核心是用户吗
  • 青岛网站排名优化公司哪家好百度一下搜索引擎大全
  • 58同城网站建设推广网站建设上海好的seo公司
  • 兄弟们试试这个网址seo流量的提升的软件
  • 网站的建设与规划方案互联网运营
  • 可以做淘宝推广的网站吗seo排名赚挂机赚钱软件下载
  • 网站制作与建设seo优化师是什么
  • 中山网站建设找丁生西安seo服务
  • 太原汽车网站建设如何在百度上发自己的广告?
  • 高端手机网站 制作公司百度推广和优化有什么区别