Maven-编写测试代码

本文接续上一篇文章《Maven-使用Maven命令编译java代码

Maven项目中默认的主代码目录是src/main/java,对应的,Maven项目中默认的测试代码目录是src/test/java。因此,在编写测试用例之前,应先创建该目录。

在Java中,由Kent Beck 和Erich Gamma建立的JUnit是事实上的单元测试标准。要使用JUnit,首先需要为项目添加JUnit依赖。

有了这段配置,Maven就能够自动从中央仓库下载junit-4.7.jar

配置中海油一个值为test的元素scope,scope为依赖范围,若依赖范围为test,则表示该依赖只对测试有效。换句话说,测试代码中(即src/main/test中),import JUnit代码是没有问题的,但是如果在主代码(src/main/java)中用import JUnit代码,就会造成编译错误。如果不声明依赖范围,那么默认值就是compile,表示该依赖对主代码和测试代码都有效。

接着就可以编写测试类。在上一篇中写了HelloWorld类,现在要测试该类的sayHello()方法,检查其返回值是否为"Hello Maven"。在src/test/java目录下创建子目录以及测试文件

一个典型的单元测试包含三个步骤:

1.准备测试类及数据

2.执行要测试的行为

3.检查结果

上面的代码首先创建了一个要测试的HelloWorld实例,接着执行该实例的sayHello()方法并保存结果到result变量,最后使用JUnit框架的Assert类检查结果是否为"Hello Maven"。在JUnit4中约定所有需要执行测试的方法都应该以@Test进行标注。

运行mvn clean test执行测试:

从输出中可以看到,Maven执行了clean、resource、compile、testResouirces、testCompile、test任务。需要了解的是Maven在执行测试test之前,它会自动执行项目主资源处理、主代码编译、测试资源处理,测试代码编译等工作,这时Maven声明周期的一个特性。

在这一步可能会遇到一个问题,由于历史的原因,Maven的核心插件之一,compiler插件默认只支持编译Java 1.3,所有如果Java版本较高,在执行测试命令时可能会提示需要使用更高版本以启动注释。这个时候需要配置该插件使其支持Java的更高版本

再次执行上面的mvn clean test命令就可以成功了

测试代码通过编译之后在target/test-classes下生成了二进制文件,紧接着surefile:test任务运行测试,surefile是Maven中负责执行测试的插件,输出测试报告,显示一共运行了多少测试,失败了多少,出错了多少,跳过了多少。

猜你喜欢

转载自blog.csdn.net/tjsahwj/article/details/84286604