caiyi 2021/10/1
source:https://www.icourse163.org/spoc/course/ECNU-1464731161
- 面向对象设计实践(基于java)
- 第一章 Maven
- 第二章 单元测试和Junit
Maven概念
自动下载和管理jar包,配置build path,存在本地进行管理,编译、测试、运行、和打包发布java项目的构建工具
Maven编译工作流程
Maven目录结构
Maven项目构建流程
首先创建maven项目
选择 maven project
勾选 create a simple project
输入 group id (组织名)、artifact id(作品名/项目名)
然后在mvn中央仓库搜索工具包的名字
https://mvnrepository.com/
选择合适的版本,复制依赖文本
将依赖文本添加到项目pom.xml中
Maven编译和运行
右键项目 → Run As → Maven Build
在Goals输入 clean package → Apply → Run
编译成功
编译过程中他会自动把jar包下载下来
运行程序
总结,构建工具的功能
-
自动帮程序员甄别和下载第三方库(jar)
-
完成整个项目编译(调用javac.exe)
-
完成整个项目单元测试流程(调用JUnit工具)
-
完成项目打包(jar/war等格式,调用jar.exe)
一些常用的依赖文本
opencc4j 简体转繁体
com.github.houbb opencc4j 1.7.1
Junit 测试
junit junit 4.13 test
commons math 数学
org.apache.commons commons-math3 3.6.1
pinyin4j 汉字转拼音
com.belerweb pinyin4j 2.5.1
Maven报错解决办法
在pom.xml中添加以下配置语句
第二章 单元测试和JunitUTF-8 UTF-8 1.8 1.8 1.8
软件测试
在规定的条件下对程序进行操作, 以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程
软件测试分类
单元 vs 集成测试
白盒 vs 黑盒测试
自动 vs 手动测试
回归测试、压力测试
JUnit:一个java语言的单元测试框架,大部分java IDE都集成了JUnit作为单元测试工具
JUnit 用法
用上一章的方法新建一个maven项目
⭐️记得在 pom.xml 里导入 JUnit 的依赖文本,否则会报错
junit junit 4.13
观察项目目录,我们在src/main/java 里面放业务代码,src/test/java 里面放测试代码
在 src/main/java 新建 LeapYear.java,给定一个年份,判断是不是闰年
public class LeapYear {
public boolean isLeapYear(int year) {
if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0){
return true;
}
else{
return false;
}
}
}
在 src/test/java 新建 LeapYearTest.java
每一个测试方法的头部加@Test注解,这样JUnit会自动执行这些测试方法
import是导入一个类或者几个类,import static是导入某一个类的所有静态方法,以便我们在程序调用的时候不需要再写 Assert.assertEquals()
import static org.junit.Assert.*;
import org.junit.Test;
public class LeapYearTest {
@Test
public void test() {
assertEquals(true,new LeapYear().isLeapYear(2020));
assertEquals(false,new LeapYear().isLeapYear(2019));
}
}
junit单元测试,右键LeapYearTest.java → Run As → JUnit Test
结果正确!
修改一下代码,运行结果错误!和我们期待的值不一样
我们也可以通过Maven Test来运行JUnit程序
运行错误
修改第八行的 false 为 true,运行正确
二者区别
JUnit一次只能执行一个test类,Maven可以批量执行



