1. 为什么需要 JUnit
1.一个类有很多功能代码需要测试, 为了测试,就需要写入到main方法中
2.如果有多个功能代码测试,就需要来回注销,切换很麻烦
3.如果可以直接运行一个方法,就方便很多,并且可以给出相关信息,就好了-> JUnit
2. 基本介绍 565
JUnit是一个Java语言的单元测试框架
2.多数Java的开发环境都已经集成了JUnit作为单元测试的工具
代码在com.stulzl.juint_.包中
JUint_
package com.stulzl.juint_;
import org.junit.jupiter.api.Test;
//演示JUint使用 565
public class JUint_ {
public static void main(String[] args) {
//调用 传统方法
// new JUint_().m1();
// new JUint_().m2();
}
@Test
public void m1() {
System.out.println("m1方法被调用");
}
@Test
public void m2() {
System.out.println("m2方法被调用");
}
}
3. 泛型本章练习 566
定义个泛型类DAO,在其中定义个Map成员变量,Map的键为String类型,值为T类型。
分别创建以下方法:
(1) public void save(String id,T entity): 保存T类型的对象到Map成员变量中
(2) public T get(String id): 从map中获取id对应的对象
(3) public void update(String id,T entity):替换map中key为id的内容,改为entity对象
(4) public List list(): 返回map中存放的所有T对象
(5) public void delete(String id): 删除指定id对象
定义一个User类:
该类包含: private成员变量(int类型) id, age; (String 类型)name.
创建DAO类的对象,分别调用其 save、get. update、 list、 delete 方法来操作User对象,
使用Ju.nit 单元测试类进行测试。
代码在com.stulzl.generic_exercise01.包中
测试类Generic_Exercise01
package com.stulzl.generic_exercise01;
import org.junit.jupiter.api.Test;
import java.util.List;
//泛型本章练习 566
//定义个泛型类DAO,在其中定义个Map成员变量,Map的键为String类型,值为T类型。
//分别创建以下方法:
//(1) public void save(String id,T entity): 保存T类型的对象到Map成员变量中
//(2) public T get(String id): 从map中获取id对应的对象
//(3) public void update(String id,T entity):替换map中key为id的内容,改为entity对象
//(4) public List list(): 返回map中存放的所有T对象
//(5) public void delete(String id): 删除指定id对象
//定义一个User类:
//该类包含: private成员变量(int类型) id, age; (String 类型)name.
//创建DAO类的对象,分别调用其 save、get. update、 list、 delete 方法来操作User对象,
//使用Ju.nit 单元测试类进行测试。
public class Generic_Exercise01 {
public static void main(String[] args) {
}
//测试方法
@Test//使用的时JUint调试
public void testList(){
//创建DAO类的对象,分别调用其 save、get、update、 list、 delete 方法来操作User对象,
//说明
//这里我们给T 指定类型是User
DAO dao = new DAO<>();
dao.save("001",new User(1,10,"jack"));
dao.save("002",new User(2,18,"king"));
dao.save("003",new User(3,38,"smith"));
//调用list方法
System.out.println("=====list遍历后=====");
List list = dao.list();//用一个List集合接收一下,也可以不接收
System.out.println("list="+list);
//调用save方法
System.out.println("=====save增加后=======");
dao.save("004",new User(4,26,"july"));
System.out.println(dao);
//调用get方法
System.out.println("======get查找后=======");
System.out.println(dao.get("002"));
//调用update方法
System.out.println("======update更改后======");
dao.update("003",new User(3,28,"tom"));
System.out.println(dao);
//调用delete方法
System.out.println("======delete删除后======");
dao.delete("001");
System.out.println(dao);
}
}
User类
package com.stulzl.generic_exercise01;
//该类包含: private成员变量(int类型) id, age; (String 类型)name.
public class User {
private int id;//特此声明一下这个id和DAO中的String id没半毛钱关系,他俩只是重名了而已
private int age;
private String name;
public User( int id, int age,String name) {
this.id = id;
this.age = age;
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", age=" + age +
", name='" + name + '\'' +
'}';
}
}
泛型类DAO
package com.stulzl.generic_exercise01;
import java.util.*;
//定义个泛型类DAO,在其中定义个Map成员变量,Map的键为String类型,值为T类型。
//分别创建以下方法:
//(1) public void save(String id,T entity): 保存T类型的对象到Map成员变量中
//(2) public T get(String id): 从map中获取id对应的对象
//(3) public void update(String id,T entity):替换map中key为id的内容,改为entity对象
//(4) public List list(): 返回map中存放的所有T对象
//(5) public void delete(String id): 删除指定id对象
public class DAO {//泛型类
//定义个Map成员变量,Map的键为String类型,值为T类型。
private Map map = new HashMap<>();
//(1) public void save(String id,T entity): 保存T类型的对象到Map成员变量中
public void save(String id,T entity){
map.put(id,entity);
}
//(2) public T get(String id): 从map中获取id对应的对象
public T get(String id){
return map.get(id);
}
//(3) public void update(String id,T entity):替换map中key为id的内容,改为entity对象
public void update(String id,T entity){
map.put(id,entity);//id相同直接替换
}
//(4) public List list(): 返回map中存放的所有T对象
//遍历map[k-v],将map的所有value(T entity),封装到ArrayList返回即可
public List list(){
//创建ArrayList
List list = new ArrayList<>();
//遍历
Set keySet = map.keySet();
for (Object o :keySet) {
list.add(map.get(o));//把所有的v值(也就是T对象)装进list
}
return list;//返回list,list里面装着map的T对象
}
//(5) public void delete(String id): 删除指定id对象
public void delete(String id){
map.remove(id);
}
@Override
public String toString() {
return "DAO{" +
"map=" + map +
'}';
}
}