Maven学习笔记(八)Maven的入门使用—3.编写测试代码
来源:互联网 发布:单片机地址总线 编辑:程序博客网 时间:2024/05/01 01:55
一般来说为了使项目结构保持清晰,主代码和测试代码应该分别位于独立的目录中。 Maven项目中默认的主代码目录是src\main\java,对应的Maven项目中默认的测试代码目录是src\test\java。因此,首先我们创建该目录。 在Java领域中,由Kent Beck和Erich Gamma建立的JUnit是事实上的单元测试标准。要使用JUnit,首先需要为HelloWorld项目添加一个JUnit依赖,修改项目的POM文件如下:
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.xv.maventest</groupId> <artifactId>helloworld</artifactId> <version>1.0-SNAPSHOT</version> <name>Maven Hello World Project</name> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.7</version> <scope>test</scope> </dependency> </dependencies></project>
代码中添加了dependencies元素,该元素下可包含多个dependency元素,以声明项目的依赖。如上代码所示,添加了一个对于JUnit的依赖。添加了依赖声明后,Maven就能够自动从仓库中下载junit-4.7.jar。这是使用Maven构建项目的便利之一。 上述的代码中还有一个元素为scope,scope为依赖范围,若依赖范围为test则表示该依赖只对测试有效。换句话说,就是测试代码中的import Junit代码是没有问题的,但是如果在主代码中用import Junit代码,就会造成编译错误。如果不声明依赖范围,那么默认值就是compile,表示该依赖对主代码和测试代码都有效。 配置了测试依赖,那么接下来就开始编写测试类:
package com.xv.maventest.helloworld;import static org.junit.Assert.assertEquals;import org.junit.Test;public class HelloWorldTest{ @Test public void testSayHello(){ HelloWorld helloworld = new HelloWorld(); String result = helloworld.sayHello(); assertEquals("HelloWorld",result); }}
一个典型的单元测试包含三个步骤:1.准备测试类及数据;2.执行要测试的行为;3.检查结果。 测试用例编写完毕后,可以调用Maven进行测试。运行如下命令:
mvn clean test
因为本人也是刚开始学习,因此本地仓库并没有Junit相关的jar包,因此执行该命令后,Maven首先会去下载JUnit的4.7版本,正是pom.xml文件声明依赖的部分,如下图所示:
下载完毕后,Maven会解决依赖问题,之后会执行测试,如下图所示:
在上面的图中,我们可以看到虽然我们是在运行测试,但是Maven显然不止执行了这两个任务,实际上还有clean:clean,resources:resources,compile:compile,resources:testResources以及compile:testCompile。 在Maven执行测试之前,它会自动先执行项目主资源处理,主代码编译,测试资源处理,测试代码编译等工作,这是Maven生命周期的一个特性。 在上图中我们可以看到一个测试报告,包括了一共运行了多少测试,失败了多少,出错了多少,跳过了多少。目前来说我们测试是通过了。
0 0
- Maven学习笔记(八)Maven的入门使用—3.编写测试代码
- Maven学习笔记(八)Maven的入门使用—2.编写主代码
- Maven学习笔记(八)Maven的入门使用—1.编写POM文件
- Maven学习笔记五:Maven使用入门(编写测试代码)
- Maven学习笔记(八)Maven的入门使用—7.创建Maven项目
- Maven学习笔记(八)Maven的入门使用—5.使用Archetype生成项目骨架
- Maven学习笔记(八)Maven的入门使用—4.打包和运行
- Maven学习笔记(八)Maven的入门使用—6.将Maven项目导入到Eclipse中
- Maven学习笔记(八)Maven的入门使用—8.在Eclipse中运行mvn命令
- maven3实战之maven使用入门(编写测试代码)
- Maven学习笔记之四:Maven使用入门(编写POM)
- maven学习笔记(八)maven的生命周期
- Maven学习笔记(三) :Maven使用入门
- Maven实战学习笔记 3.Maven使用入门
- Maven实战学习笔记 3.Maven使用入门
- 《maven实战》学习笔记3——maven使用入门
- Maven实践(四)---编写测试代码
- Maven学习笔记(二)——创建Maven工程&Maven命令的使用
- 阿里巴巴网站推广——扬州渠道中心
- 宽带连接错误的处理办法
- NDK下获取IEIM并且使用MD5算法加密
- APB_IIS模块DUT&Testbench实践
- SimpleDateFormat
- Maven学习笔记(八)Maven的入门使用—3.编写测试代码
- Android有用处理代码集锦-----分辨率相关
- map的value值排序
- 查看linux系统启动时间
- [oj.leetcode] #179 - LargestNumber, 如何在7ms内跑完 221个测试用例
- ACM--steps--3.1.4--折线分割平面
- hduoj2044 小蜜蜂
- codeforces 487C Prefix Product Sequence (模逆元+构造)
- 配置opencv