JUnit的作用是:在庞大的程序项目中,要测试一个功能模块,不需要将整个庞大的项目都运行,只需要将需要测试的功能块进行JUnit测试就行
非常的方便,也很清晰,提高的开发的速度。

目前普遍使用的JUnit版本为JUnit4

JUnit的格式为:@Test

可以利用快速修复键(ctrl+1),来添加JUnit4的jar包

在有多个JUnit测试存在时,直接右键运行会将 全部都执行,如果只需要测试一个功能,就先左键选中这个代码块,再右键运行。

JUnit单元测试的要求是:

权限修饰符必须是public 这是因为往往JUnit测试代码会被写在test包下,所以修饰符要为public,负责无法访问

返回值类型为空。

没有参数

正规的单元测试
1 》 在当前要测试的类上右键,选择 new-- 》 junit test case
2 》 单元测试方法的命名:
test+ 要测试的方法的名称


这是新建JUnit测试的步骤

随机访问流
1.RandomAccessFile :不属于 IO 流体系的 IO 流,直接继承 Object 类
用于 随机访问文件的读写。
2. 构造方法:
RandomAccessFile(File file, String mode) /RandomAccessFile(String name, String mode)
注意:
mode: 一共 4 种,常用两种 r 表示只读 ( 输入流 ) rw 表示读写 ( 输入 / 出流 )

代码示例:

 1 public class  随机访问流 {2 public static void main(String[] args) throws IOException {3 RandomAccessFile raf=new RandomAccessFile(new File("1.txt"), "rw");4 // 写 的方法5 /*raf.write("abc".getBytes());6 raf.write("def".getBytes());7 byte[] b=new byte[1024];8 int count = raf.read(b);9 System.out.println(new String(b,0,count));*/
10 // 随机插入 seek(pointer) 设置文件指针位置。
11 raf.seek(1);
12 raf.write(" 我们 ".getBytes());
13 //getFilePointer  获取指针当前位置。
14 System.out.println(raf.getFilePointer());
15 raf.close();
16 }
17 }

属性集:

1.Properties : 属性集,该属性集中由键与值组成,并且都是字符串。继承 HashTable ,属于 Map 集合的一支

2. 构造方法:
Properties()
3. 常用方法:
1 》 load( 输入流 ) 从输入流中读取属性集
2 》 getProperty(String key) 通过 key 获取值
4. 配置文件。 – 》 .properties— 》 xml

代码示例:

 1 public class  属性集 {2 public static void main(String[] args) throws IOException {3 // 数据库? mysql mysql -- 》登录 mysql -uroot -p1234 /*String username="root";5 String psw="123";*/6 // 创建属性集对象7 //=========== 以下要求必会8 Properties prp=new Properties();9 /*System.out.println(prp);
10 prp.load(new FileInputStream(new File("Jdbc.properties")));
11 System.out.println(prp);
12 String name = prp.getProperty("username");
13 System.out.println(name);*/
14 //=========== 以上必会
15 prp.put("username", "root");
16 prp.put("psw", "123");
17 prp.store(new FileWriter(new File("3.properties")), " 这是一个 java 的文件 ");
18 }
19 }

版本序列号就好比是一个模具。

下面是一个简版的学生管理系统:

Student类

1 package com.ujiuye.studentmanager;2 import java.io.Serializable;3 4 public class Student implements Serializable{5     /**6      * 序列化版本号7      */8     private static final long serialVersionUID = -9027709965061074374L;9     private String name;
10     private int age;
11     private String stuNo;
12     public String getName() {
13         return name;
14     }
15     public void setName(String name) {
16         this.name = name;
17     }
18     public int getAge() {
19         return age;
20     }
21     public void setAge(int age) {
22         this.age = age;
23     }
24     public String getStuNo() {
25         return stuNo;
26     }
27     public void setStuNo(String stuNo) {
28         this.stuNo = stuNo;
29     }
30     public Student() {
31         super();
32         // TODO Auto-generated constructor stub
33     }
34     public Student(String name, int age, String stuNo) {
35         super();
36         this.name = name;
37         this.age = age;
38         this.stuNo = stuNo;
39     }
40     @Override
41     public String toString() {
42         return "学生 :姓名 " + name + ", 年龄 " + age + ", 学号 " + stuNo ;
43     }
44 }

服务器端负责增删改查的代码

StudnetDao

 1 package com.ujiuye.studentmanager;2 3 import java.io.IOException;4 import java.util.ArrayList;5 import java.util.Iterator;6 import java.util.Scanner;7 8 import com.ujiuye.studentmanager.util.IOUtils;9 10 11 public class StudentDAO {12       /**13      *  思路:14      *   ① 输入要添加的姓名  年龄  学号15      *   ② 首先从文件中读取集合,再添加学生对象16      *   ③ 将该集合写入到文件中。17      * @throws IOException 18      */19     public  void add(String fileName) throws IOException {20           Scanner sc=new Scanner(System.in);21           System.out.println("请输入要添加的学生的姓名:");22           String name = sc.next();23           System.out.println("请输入要添加的学生的年龄:");24           int age = sc.nextInt();25           System.out.println("请输入要添加的学生的学号:");26           String stuNo = sc.next();27           //读取28           ArrayList<Student> list = IOUtils.getStudents(fileName);29           //添加用户输入的学生对象30           list.add(new Student(name, age, stuNo));31           //写入文件,再显示32           IOUtils.writeToList(list, fileName);33           System.out.println("添加成功");34           query(fileName);35       }36       public  void delete(String fileName) throws IOException {37           Scanner sc=new Scanner(System.in);38           System.out.println("请输入要删除学生的学号:");39           String stuNo = sc.next();40           //查询学号 ==》直接删除,不判断是否存在。41           //遍历集合  删除学生 ==》文件中读取42           //建议删除时 使用迭代器43           ArrayList<Student> list = IOUtils.getStudents(fileName);44           //判断该集合是否存在元素45           if(!list.isEmpty()) {46               Iterator<Student> it = list.iterator();47               while(it.hasNext()) {48                   Student st = it.next();49                   if(st.getStuNo().equals(stuNo)) {50                       //删除51                       it.remove();52                   }53               }54           }55           //写入文件,并显示56           IOUtils.writeToList(list, fileName);57           System.out.println("删除成功");58           query(fileName);59       }60       public  void update(String fileName) throws IOException {61           Scanner sc=new Scanner(System.in);62           System.out.println("请输入要修改的学生的学号:");63           String stuNo = sc.next();64           //遍历集合,看学号是否存在65           //读取66           ArrayList<Student> list = IOUtils.getStudents(fileName);67           //标识位  68           boolean flag=true;69           if(!list.isEmpty()) {70               Iterator<Student> it = list.iterator();71               while(it.hasNext()) {72                   Student st = it.next();73                   if(st.getStuNo().equals(stuNo)) {74                       System.out.println("请输入要修改的学生的姓名:");75                       String name = sc.next();76                       System.out.println("请输入要修改的学生的年龄:");77                       int age = sc.nextInt();78                       st.setName(name);79                       st.setAge(age);80                       flag=false;81                     //写文件 再显示82                          IOUtils.writeToList(list, fileName);83                          System.out.println("修改成功");84                          query(fileName);85                          break;// 找到一个学号 就修改86                   }87               }88           }89          if(flag) {90              System.out.println("没有该学号存在");91          }92         93       }94       //查询95       //思路: 读取文件中的集合,遍历 ,前提,判断集合中是否存在元素,没有 ,提示添加,然后再查询。96       public  void query(String fileName) throws IOException {97           //读取的方法 工具类98           ArrayList<Student> list=IOUtils.getStudents(fileName);99           //判断
100           if(list.isEmpty()) {
101               System.out.println("没有数据,请先添加再查询");
102           }else {
103               //遍历
104               Iterator<Student> it = list.iterator();
105               while(it.hasNext()) {
106                   System.out.println(it.next());
107               }
108           }
109       }
110 }

主方法:

 1 package com.ujiuye.studentmanager;2 3 import java.util.Scanner;4 5 6 public class Test_Main {7     public static void main(String[] args) {8         Scanner sc=new Scanner(System.in);9         //创建StudentDAO类的对象
10         StudentDAO std=new StudentDAO();
11         try {
12             while (true) {
13                 System.out.println("========欢迎光临学生管理系统=============");
14                 System.out.println("添加学生 请按1 ,删除学生 请按2 ,修改学生 请按3 ,查询学生 请按4退出 请按5");
15                 //用户的选择
16                 int choose = sc.nextInt();
17                 switch (choose) {
18                 case 1:
19                     std.add("stu.txt");
20                     break;
21                 case 2:
22                     std.delete("stu.txt");
23                     break;
24                 case 3:
25                     std.update("stu.txt");
26                     break;
27                 case 4:
28                     std.query("stu.txt");
29                     break;
30                 case 5:
31                     System.exit(0);//退出jvm
32                 }
33             }
34         } catch (Exception e) {
35             e.printStackTrace();
36         }
37     }
38 }

IO流的代码块

 1 // package com.ujiuye.studentmanager.util;2 import java.io.File;3 import java.io.FileInputStream;4 import java.io.FileOutputStream;5 import java.io.IOException;6 import java.io.ObjectInputStream;7 import java.io.ObjectOutputStream;8 9 import java.util.ArrayList;
10 import com.ujiuye.studentmanager.Student;
11 public class IOUtils {
12     //读
13     /*思路:
14      *  ① 读取文件 ?
15      *    1》 如果文件没有 ,新建一个文件。
16      *    2》读取该文件 ,创建反序列化流。读取文件。
17      *
18      */
19     public static  ArrayList<Student>  getStudents(String fileName) throws IOException{
20 //         如果文件没有 ,新建一个文件。
21         File file=new File(fileName);
22         if(!file.exists()) {
23             file.createNewFile();
24         }
25         //创建一个集合,来存储学生对象
26         ArrayList<Student> list=null;
27 //        读取该文件 ,创建反序列化流。读取文件。
28         try(
29                 ObjectInputStream ois=new ObjectInputStream(new FileInputStream(file))
30         ){
31             list = (ArrayList<Student>) ois.readObject();
32         }catch (Exception e) {
33             //EOFException 如果有文件,但是文件中没有内容,报该异常。
34             list=new ArrayList<>();
35         }
36         //返回集合
37         return list;
38     }
39     //写
40     /*思路 :
41      * 前提:先将文件中的集合读取 。然后再进行写入
42      * ① 将list集合写入到文件中。
43      * ② 序列化流写入
44      *
45      */
46     public  static void writeToList(ArrayList<Student> list,String fileName) {
47         try(
48             ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream(new File(fileName)));
49         ){
50             oos.writeObject(list);
51         }catch (Exception e) {
52             e.printStackTrace();
53         }
54     }
55 }

下面为测试代码

 1 package com.ujiuye.studentmanager;2 3 import static org.junit.Assert.*;4 5 import java.io.IOException;6 7 import org.junit.Test;8 9 public class StudentDAOTest {
10     StudentDAO std=new StudentDAO();
11     @Test
12     public void testAdd() throws IOException {
13         std.add("stu.txt");
14     }
15
16     @Test
17     public void testDelete() throws IOException {
18         std.delete("stu.txt");
19     }
20
21     @Test
22     public void testUpdate() throws IOException {
23         std.update("stu.txt");
24     }
25
26     @Test
27     public void testQuery() throws IOException {
28         std.query("stu.txt");
29     }
30
31 }
 1 package com.ujiuye.studentmanager.util;2 3 import static org.junit.Assert.*;4 5 import java.io.IOException;6 import java.util.ArrayList;7 8 import org.junit.Test;9
10 import com.ujiuye.studentmanager.Student;
11
12 public class IOUtilsTest {
13
14     @Test
15     public void testGetStudents() throws IOException {
16         System.out.println(IOUtils.getStudents("stu.txt"));
17     }
18
19     @Test
20     public void testWriteToList() {
21         ArrayList<Student>  list=new ArrayList<>();
22         list.add(new Student("zs", 19, "1001"));
23         list.add(new Student("zs1", 19, "1002"));
24         list.add(new Student("zs2", 19, "1003"));
25         IOUtils.writeToList(list, "stu.txt");
26
27     }
28
29 }

下面为另外一个版本

 1 package StudentManager1;2 3 import java.io.Serializable;4 5 public class Student implements Serializable{6 7     /**8      * 9      */
10     private static final long serialVersionUID = 4858356809294180650L;
11     private String name;
12     private String stuNo;
13     private int age;
14     public Student(String name, String stuNo, int age) {
15         super();
16         this.name = name;
17         this.stuNo = stuNo;
18         this.age = age;
19     }
20     public Student() {
21         super();
22     }
23     @Override
24     public String toString() {
25         return "学生   姓名:" + name + " 学号: " + stuNo + " 年龄: " + age ;
26     }
27     public String getName() {
28         return name;
29     }
30     public void setName(String name) {
31         this.name = name;
32     }
33     public String getStuNo() {
34         return stuNo;
35     }
36     public void setStuNo(String stuNo) {
37         this.stuNo = stuNo;
38     }
39     public int getAge() {
40         return age;
41     }
42     public void setAge(int age) {
43         this.age = age;
44     }
45     @Override
46     public int hashCode() {
47         final int prime = 31;
48         int result = 1;
49         result = prime * result + age;
50         result = prime * result + ((name == null) ? 0 : name.hashCode());
51         result = prime * result + ((stuNo == null) ? 0 : stuNo.hashCode());
52         return result;
53     }
54     @Override
55     public boolean equals(Object obj) {
56         if (this == obj)
57             return true;
58         if (obj == null)
59             return false;
60         if (getClass() != obj.getClass())
61             return false;
62         Student other = (Student) obj;
63         if (age != other.age)
64             return false;
65         if (name == null) {
66             if (other.name != null)
67                 return false;
68         } else if (!name.equals(other.name))
69             return false;
70         if (stuNo == null) {
71             if (other.stuNo != null)
72                 return false;
73         } else if (!stuNo.equals(other.stuNo))
74             return false;
75         return true;
76     }
77
78
79 }
 1 package StudentManager1;2 3 import java.io.IOException;4 import java.util.ArrayList;5 import java.util.Iterator;6 import java.util.Scanner;7 8 public class StudentDao {9
10     public void add(String fileName) throws Exception{
11         System.out.println("添加学生");
12         Scanner sc=new Scanner(System.in);
13         System.out.println("请输入你想输入的学生的姓名");
14         String name=sc.next();
15         System.out.println("请输入你想输入的学生的学号");
16         String stuNo=sc.next();
17         System.out.println("请输入你想输入的学生的年龄");
18         int age=sc.nextInt();
19         IOUtils iu=new IOUtils();
20         ArrayList<Student> list=iu.getStudents(fileName);
21         list.add(new Student(name,stuNo,age));
22         iu.writeStudents(list, fileName);
23         System.out.println("添加成功");
24         query(fileName);
25
26
27     }
28     public void delete(String fileName) throws Exception, Exception {
29         System.out.println("删除学生");
30         Scanner sc=new Scanner(System.in);
31         System.out.println("请输入你想删除的学生的学号:");
32         String input=sc.next();
33         IOUtils iu=new IOUtils();
34         ArrayList<Student> list=iu.getStudents(fileName);
35         Iterator<Student> it=list.iterator();
36         while(it.hasNext()) {
37             Student stu=it.next();
38             if(stu.getStuNo().equals(input)) {
39                 it.remove();break;
40             }else {
41                 System.out.println("数据未找到");
42             }
43         }
44         iu.writeStudents(list, fileName);
45         System.out.println("删除成功");
46         query(fileName);
47     }
48     public void change(String fileName) throws Exception, Exception {
49         System.out.println("更改学生");
50         Scanner sc=new Scanner(System.in);
51         System.out.println("请输入你想更改的学生的学号");
52         String stuNo=sc.next();
53         IOUtils iu=new IOUtils();
54         ArrayList<Student> list=iu.getStudents(fileName);
55         Iterator<Student> it=list.iterator();
56         while(it.hasNext()) {
57             Student stu=it.next();
58             if(stu.getStuNo().equals(stuNo)) {
59                 System.out.println("请输入你想更改的姓名");
60                 String name=sc.next();
61                 stu.setName(name);
62                 System.out.println("请输入你想更改的年龄");
63                 int age=sc.nextInt();
64                 stu.setAge(age);
65
66                 iu.writeStudents(list, fileName);
67                 System.out.println("修改成功");
68                 query(fileName);
69                 break;
70             }else {
71                 System.out.println("未找到对应学号");
72             }
73
74         }
75
76     }
77     public void query(String fileName) throws Exception{
78         System.out.println("查询信息");
79         IOUtils iu=new IOUtils();
80         ArrayList<Student> list=iu.getStudents(fileName);
81         if(list.isEmpty()) {
82             System.out.println("数据为空,无法查询");
83         }else {
84             Iterator<Student> it=list.iterator();
85             while(it.hasNext()) {
86                 Student stu=it.next();
87                 System.out.println(stu);
88                 break;
89             }
90         }
91
92
93     }
94     public void exit() {
95         System.exit(0);
96     }
97 }
 1 package StudentManager1;2 3 import java.util.Scanner;4 5 public class Student_Main {6 7     public static void main(String[] args) {8         Scanner sc=new Scanner(System.in);9
10             while(true) {
11                 System.out.println("1增2删3该4查");
12                 int input=sc.nextInt();
13
14                 try {
15                 StudentDao stud=new StudentDao();
16                 switch(input) {
17                 case 1:stud.add("stu.txt");break;
18                 case 2:stud.delete("stu.txt");break;
19                 case 3:stud.change("stu.txt");break;
20                 case 4:stud.query("stu.txt");break;
21                 case 5:stud.exit();break;
22                 }
23             }
24                 catch(Exception e) {
25                     e.printStackTrace();
26                 }
27         }
28
29
30     }
31
32
33
34
35 }
 1 package StudentManager1;2 3 import java.io.File;4 import java.io.FileInputStream;5 import java.io.FileOutputStream;6 import java.io.IOException;7 import java.io.ObjectInputStream;8 import java.io.ObjectOutputStream;9 import java.util.ArrayList;
10
11 public class IOUtils {
12
13     public ArrayList<Student> getStudents(String fileName) throws IOException, Exception{
14         File file=new File(fileName);
15
16         if(!file.exists()) {
17             file.createNewFile();
18         }
19         ArrayList<Student> list=null;
20         try (
21                 ObjectInputStream ois=new ObjectInputStream(new FileInputStream(file));
22                 ){
23             list=(ArrayList<Student>) ois.readObject();
24         }catch(Exception e) {
25             e.printStackTrace();
26         }
27
28         return list;
29
30     }
31
32     public void writeStudents(ArrayList<Student> list, String fileName) throws Exception{
33
34         try(
35                 ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream(fileName));
36                 ){
37                 oos.writeObject(list);
38         }catch(Exception e) {
39             list=new ArrayList<>();
40         }
41
42
43     }
44 }
 1 package StudentManager1;2 3 import java.io.IOException;4 import java.util.ArrayList;5 6 import org.junit.jupiter.api.Test;7 8 class IOUtilsTest {9
10     @Test
11     void testGetStudents() throws Exception {
12         IOUtils iu=new IOUtils();
13         System.out.println(iu.getStudents("stu.txt"));
14     }
15
16     @Test
17     void testWriteStudents() throws Exception {
18         ArrayList<Student>  list=new ArrayList<>();
19         list.add(new Student("zs", "1001", 19));
20         list.add(new Student("zs1", "1002",19));
21         list.add(new Student("zs2", "1003", 19));
22         IOUtils iu=new IOUtils();
23         iu.writeStudents(list, "stu.txt");
24     }
25
26 }
 1 package StudentManager1;2 3 import static org.junit.jupiter.api.Assertions.*;4 5 import org.junit.jupiter.api.Test;6 7 class StudentDaoTest {8     StudentDao stud=new StudentDao();9     @Test
10     void testAdd() throws Exception {
11         stud.add("stu.txt");
12     }
13     @Test
14     void testDelete() throws Exception {
15         stud.delete("stu.txt");
16     }
17     @Test
18     void testChange() throws Exception {
19         stud.change("stu.txt");
20     }
21     @Test
22     void testQuery() throws Throwable {
23         stud.query("stu.txt");
24     }
25     @Test
26     void testExit() {
27         stud.exit();
28     }
29 }

JUnit单元测试简版的学生管理系统相关推荐

  1. python管理系统web版_Python学生管理系统(web网页版)-Go语言中文社区

    前言:本项目是使用Python的Django的web框架搭建的,是一个完整的学生管理系统,功能包括基本的增删改查 项目演示图: 首页展示数据的页面(index.html) 添加学生的页面(add.ht ...

  2. 用代码证明自己闲的蛋疼(四)——简易坑爹版学生管理系统

    众所周知,学生管理系统一直频繁的出没在我们的毕业设计当中. 当然,其大多数都是基于BS(Browser/Server)开发的~当年萌新的我还妄想用C写一个win32控制台的管理系统作为毕设蒙混过关,然 ...

  3. 微信小程序版学生管理系统演示(一)

    开始前的思考 微信小程序版的学生管理系统由什么组成? 组成这个系统的各个软件分别是什么? 这些软件需要用到哪些开发工具? 我的思路 微信小程序版的管理系统的组成 首先,作业限定了使用微信小程序,那么该 ...

  4. Python 学生管理系统+mysql+Flask

    Python 学生管理系统 前言 项目目录 config py mapper.student_mapper.py static templates 主要代码块 student_controller.p ...

  5. [置顶]完美简版学生信息管理系统(附有源码)管理系统

    简版学生信息管理系统 目前为止找到的简版系统中最新.最全的java类管理系统 点击进入简版系统 如果无法直接连接,请进入: https://blog.csdn.net/weixin_43419816/ ...

  6. 用python3做学生管理系统_详解用python实现基本的学生管理系统(文件存储版)(python3)...

    详解用python实现基本的学生管理系统(文件存储版)(python3) 来源:中文源码网    浏览: 次    日期:2019年11月5日 详解用python实现基本的学生管理系统(文件存储版)( ...

  7. python登录系统文件版_详解用python实现基本的学生管理系统(文件存储版)(python3)...

    这个是升级的版本,比较进阶一点的,相对与之前的文件管理系统,数据只是存储到了内存中,而不是存储到硬盘上,我们想让文件存储到硬盘上的话,一个是存储到文件里,一个是存储到数据库中,存储到数据库中的版本会后 ...

  8. 学生管理系统——C语言版

    文章目录 学生管理系统--C语言版 主函数 录入学生信息 删除学生信息 修改学生信息 查找学生信息 打印学生信息 保存学生信息 读取学生信息 求班级成绩的平均值 学生管理系统--C语言版 主函数 in ...

  9. 学生管理系统(Java版)

    学生管理系统(Java版) 前言:这个是大二做的课设(还是学生管理系统-),理论上虽然是4个人一组一起做的,但是,注意这个"但是",还是我一个人承担了所有-代码和文档基本都是我一个 ...

最新文章

  1. Hexo博客NexT主题美化之文末统一添加“本文结束”标记
  2. 网站推广专员浅析网站推广期间如何降低网站优化短板威胁?
  3. linux下的软件包安装(rpm   yum)
  4. 浅谈巴拿马电源的谐波消除原理
  5. iview table后端分页 多选 翻页选中回显
  6. .NET Core 容器化调查
  7. Rabbitmq - 配置
  8. Win10系统省电模式的设置教程
  9. 智能优化算法应用:基于麻雀搜索算法与双伽马校正的图像自适应增强算法 - 附代码
  10. cgcs2000大地坐标系地图_wgs84和cgcs2000坐标系有什么区别
  11. 科学研究设计六:有效性威胁
  12. tomcat配置manger账户和host-manager账户的方法详细图解
  13. sql server 系统表 介绍
  14. 科技日语写作 计算机科学专题,科技进步和人类日语作文
  15. 键盘、鼠标各键对应的ASCII码值
  16. 仓库码放要求_仓库管理制度规则
  17. 手机微信如何合并健康码行程码
  18. MAC M1安装docker并拉取mysql镜像
  19. python二维图颜色函数_通过python改变图片特定区域的颜色详解
  20. linux python安装位置疑惑

热门文章

  1. 不会开赛车的管理者不是好的开发人
  2. MyBatis.Redis.+mysql.mycat
  3. 破解修改服务器数据库,关于网站充值系统数据库的修改求助
  4. 一些常见BootLoader介绍
  5. 球形圆阵换能器 知识点
  6. 身份证号脱敏处理,各页面的身份证号隐藏11-16位
  7. linux系统环境快速入门
  8. 14届蓝桥青少选拔赛2022年8月21日C++中高级在线考试
  9. BZOJ 1503 [NOI2004] 郁闷的出纳员 treap
  10. (原创)斗牛游戏 初版