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

广州做企业网站的公司办公室装修设计创意图

广州做企业网站的公司,办公室装修设计创意图,凡科网站建设套餐报价,wordpress的登录密码一、一个简单的例子 1、引入Maven依赖:JUnit框架和Surefire插件 2.在src/test/java目录下新建名字以“Test”结尾的测试类,并用Test注释测试方法 3.运行单元测试用例 或用mvn命令运行单元测试: 二、单元测试基础之单元测试框架:J…

一、一个简单的例子

1、引入Maven依赖:JUnit框架和Surefire插件

2.在src/test/java目录下新建名字以“Test”结尾的测试类,并用@Test注释测试方法

3.运行单元测试用例

或用mvn命令运行单元测试:

二、单元测试基础之单元测试框架:Junit 4

项目父模块已经引入了JUnit 4,所以在项目中选用JUnit4

官网:JUnit – About

API文档:JUnit API

FAQ:JUnit – Frequently Asked Questions

Maven依赖:

<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<version>4.12</version>

</dependency>

1、Junit:用于编写和运行测试用例的开源框架

JUnit主要提供了如下3个方面的能力:

  1. Assertions:断言实际值是否等于期望值,包含一组重载方法;

(2)Fixtures:用于保证测试用例可重复性的固定的基准环境;

(4)Test runners:用于运行测试用例的机制。

2、Assertions

所有断言方法都是org.junit.Assert类的静态方法,例如:

import static org.junit.Assert.assertArrayEquals;

import static org.junit.Assert.assertEquals;

import static org.junit.Assert.assertFalse;

import static org.junit.Assert.assertNotNull;

import static org.junit.Assert.assertNotSame;

import static org.junit.Assert.assertNull;

import static org.junit.Assert.assertSame;

import static org.junit.Assert.assertThat;

import static org.junit.Assert.assertTrue;

3、Fixtures

在测试方法执行之前或之后执行,用于保证测试方法的执行环境是确定的。Junit4支持4个注解:

@BeforeClass:在当前测试类的所有测试方法之前执行,只执行一次;

@AfterClass:在当前测试类的所有测试方法之后执行,只执行一次;

@Before:在每个测试方法执行之前都会执行一次;

@After:在每个测试方法执行之后都会执行一次。

4、Test runners

(1)JUnit运行测试用例的入口是JUnitCore类,支持如下两种方式:

方式1:在Java应用中

org.junit.runner.JUnitCore.runClasses(TestClass1.class, ...);

方式2:在命令行中

java org.junit.runner.JUnitCore TestClass1 [...other test classes...]

JUnit默认使用一个叫做BlockJUnit4ClassRunner的Runner来运行测试用例,可以用@RunWith(XXX.class)注解测试类来替换成其它Runner(如提供Spring容器支持的SpringJUnit4ClassRunner)。

(2)默认情况下,JUnit会为每个测试方法创建测试对象

测试类:至少包含一个测试方法的类;

测试方法:由@Test注解的实例方法;

生命周期方法:由@BeforeAll,、@AfterAll、@BeforeClass或@AfterClass注解的方法。

注意:测试方法和生命周期方法不能是抽象方法且不能有返回值;

测试类、测试方法和生命周期方法不能是private,但是也不一定要public。

三、单元测试基础之运行环境:Maven的Surefire插件和Failsafe插件

1、测试代码与业务代码不同,没有直接的main函数入口,通常需要借助特定的工具来运行

(1)IDE支持,如IDEA、Eclipse、NetBeans和VS等;

(2)构建工具支持,如Maven和Ant;

(3)JUnit提供的命令行工具。

2、Maven的default生命周期

Maven默认情况下为每个阶段绑定相应的goal。例如:当在POM文件中将模块的<packaging>元素设为jar时,Maven会把如下goal绑定到相应的阶段

其中,被绑定到test阶段的surefire:test用于运行应用中的单元测试。为了方便设置Surefire插件的参数,建议把它显式地添加到POM文件中。例如:

<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><version>2.19.1</version></plugin></plugins>
</build>

在POM文件所在目录执行:

mvn package

Maven在执行到test阶段的时候,会查找并运行src/test/java目录下的单元测试。

3、Surefire插件Failsafe插件

(1)单元测试 vs 集成测试

1)单元测试一般是类级别的,通常是方法级别的。每个测试用例通常只验证一个方法或一个类的功能,不负责检查跨类或者跨系统的交互;

2)集成测试的测试粒度比单元测试的粗,例如验证整个API服务或RPC服务的功能是否符合预期。由于要启动整个服务,会对外界环境(如数据库、Apollo配置)有比较强的依赖,有些应用可能还需要把包部署到外部容器才能进行测试。

(2)Maven对单元测试和集成测试的支持:Surefire插件和Failsafe插件

1)Surefire插件:用于运行单元测试。运行测试用例和验证结果在同一个构建阶段,一旦发现测试用例运行失败,就马上终止构建并标志为失败。

2)Failsafe插件:用于运行集成测试。运行测试用例和验证结果在不同的构建阶段,测试用例运行失败不会马上终止构建,所以可以在终止构建前把测试用例依赖的外部环境释放掉。它的命名就跟这一特性有关——即使测试用例失败也能以安全的方式结束构建过程。

4、Surefire插件和Failsafe插件与Maven的default生命周期

<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><version>2.19.1</version><configuration><argLine>${test.jvm.option}</argLine></configuration></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-failsafe-plugin</artifactId><version>2.18.1</version><configuration><argLine>${test.jvm.option}</argLine></configuration><executions><execution><goals><goal>integration-test</goal><goal>verify</goal></goals></execution></executions></plugin></plugins>
</build>

默认情况下,Surefire插件的surefire:test 绑定到test阶段,负责运行和验证单元测试;

Failsafe插件的failsafe:integration-test 绑定到integration-test阶段,负责运行集成测试;failsafe:verify 绑定到verify阶段,负责验证集成测试。

在POM文件所在目录执行:

mvn verify

Maven依次编译源码,让Surefire插件运行单元测试用例,打包,让Failsafe插件运行集成测试用例。

5、Surefire插件和Failsafe插件分别运行哪些测试用例?

(1)Surefire插件默认查找并运行符合以下条件的测试类

(2)Failsafe插件默认查找并运行符合以下条件的测试类

可以通过<include>和<exclude>属性来添加或排除特定的测试类。

总结:对比Surefire插件的默认执行测试类可见,这两个插件的测试类可以重叠,可以让某些测试类既在test阶段执行也在integration-test阶段执行。如果不想让这两种测试类重叠,可以将所有单元测试类的类名以“Test”结尾并且不以“IT”开头,并将集成测试类的类名以“IT”结尾并且不以“Test”开头。

6、如何跳过测试用例?

方式1:总是跳过运行单元测试和集成测试

将skipTests参数(默认false)设置为true,跳过运行单元测试和集成测试:

<project>
[...]<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><version>3.0.0-M5</version><configuration><skipTests>true</skipTests></configuration></plugin></plugins></build>[...]
</project>

方式2:默认跳过运行单元测试和集成测试,但是在需要的时候通过mvn命令参数关闭跳过

将skipTests属性设置为true,在需要的时候指定mvn命令参数skipTest为false:

<project>[...]<properties><skipTests>true</skipTests></properties>[...]<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><version>3.0.0-M5</version><configuration><skipTests>${skipTests}</skipTests></configuration></plugin></plugins></build>[...]
</project>

mvn install -DskipTests=false

如果只打算跳过由Failsafe插件执行的集成测试,可以用skipITs参数代替。

方式3:跳过单元测试和集成测试的编译和运行

指定mvn命令参数maven.test.skip(默认false)为true,。

mvn install -Dmaven.test.skip=true

方式4:运行单元测试,但是忽略测试结果

指定mvn命令参数maven.test.failure.ignore(默认false)为true:

mvn test -Dmaven.test.failure.ignore=true

  1. Surefire插件和Failsafe插件如何运行测试用例?

(这里以Surefire插件为例,Failsafe插件类似)

  1. 默认情况下,Surefire插件创建一个子进程来运行所有测试类;

(2)子进程的主要工作就是指定类加载路径并运行测试类:

java -classpath foo.jar:bar.jar MyApp

(3)Surefire插件支持以多线程多进程的方式运行测试用例,以加快测试速度。

http://www.yayakq.cn/news/268372/

相关文章:

  • 想学做网站要去哪里学广州天河区有什么好玩的
  • 专业的会议网站建设龙岗网站建设价格
  • 国内摄影作品网站使用mvs2010做网站
  • 杭州做网站比较好的公司海外免费域名
  • 动易的网站系统长春网站制作最新招聘信息
  • 深圳网站的优化公司哪家好网站栏目规划图
  • 信誉好的唐山网站建设手机网站建设服务
  • 泰安做网站多少钱自己做的网站显示不出来
  • 电商网站前端架构设计wordpress稳定版
  • 谷城建设局网站建筑网站视频大全
  • 购物网站可行性分析报告公司做环评的网站
  • 用c 做网站金华网站建设公司哪家好
  • 北京保障房建设网站网上房地产官网
  • 辅助教学网站开发技术讨论北京好一点的微网站开发公司
  • 烟台网站seo服务上热门的短视频素材
  • 动态视频素材网站字体怎么装到wordpress
  • 网站右侧出现百度名片叫什么南昌企业网站排名优化
  • 宁波建网站哪家值得信赖开封网站优化
  • 做logo有哪些网站阿里巴巴外贸网站登录
  • 电子网站光泽网站建设
  • 如何选择镇江网站优化php 网站后台管理系统
  • 靖江建设局网站宽屏营销型网站源码
  • 个人博客网站建设业务vs2017可以做网站吗
  • 郑州建网站价关于销售网站建设的短文
  • 周口高端网站建设襄樊做网站
  • 站长之家权重查询网站建设服务器域名
  • 网站做推广的团队58创业网
  • 巩义网站建设东莞关键词排名优化
  • 做国外的众筹网站什么公司在百度做网站
  • 福建网站建设模板优秀网页设计赏析