Java里的单元测试(详解)

Java里的单元测试(详解)对部分代码进行测试

大家好,欢迎来到IT知识分享网。

1. 单元测试Junit

1.1 什么是单元测试?(掌握)

对部分代码进行测试。

1.2 Junit的特点?(掌握)

  • 是一个第三方的工具。(把别人写的代码导入项目中)(专业叫法:导jar包)
  • 如果运行结果显示绿色,表示运行结果是正确的。

    如果运行结果显示红色,表示运行结果是错误的。

1.3 基本用法:(掌握)

1,一定要先写一个方法。

2,在这个方法的上面写@Test

3,鼠标点一下@Test 按alt + 回车,点击Junit4

此时就可以自动导包。

如果自动导包失败(连接外网,或者自己手动导包)

如果导包成功在左下角就会出现Junit4的相关jar包

手动导包(掌握)

1,在当前模块下,右键新建一个文件夹(lib)

2,把今天资料里面的两个jar包,拷贝到lib文件夹里面

3,选中两个jar右键点击add as a lib….

4,到代码中,找到@Test,按alt + 回车,再来导入。

运行测试代码(掌握)

  • 只能直接运行无参无返回值的非静态方法
  • 想要运行谁,就右键点击哪个方法。如果想要运行一个类里面所有的测试方法,选择类名,有点点击即可。

Junit正确的打开方式(正确的使用方式)(掌握)

注意点:并不是直接在要测试的方法上面直接加@Test

原因:因为要测试的方法有可能是有参数的,有返回值,或者是静态的。

正确的使用方式:(掌握)

1,新建测试类

2,新建测试方法(要测试的方法名 + Test) methodTest

3,在这个方法中直接调用要测试的方法

4,在测试方法的上面写@Test

代码示例:

//真正用来测试的类 //测试用例(测试类) public class JunitTest { ​    //在这个类里面再写无参无返回值的非静态方法    //在方法中调用想要测试的方法 ​    @Test    public void method2Test(){        //调用要测试的方法        JunitDemo1 jd = new JunitDemo1();        jd.method2(10);   } }

实际开发中单元测试的使用方式(掌握)

需求:测试File中的delete方法,写的是否正确(掌握)

开发中的测试原则:

不污染原数据。

代码示例:

public class JunitDemo3 {    //在实际开发中,真正完整的单元测试该怎么写?    //前提:    //以后在工作的时候,测试代码不能污染原数据。(修改,篡改)    //1.利用Before去对数据做一个初始化的动作    //2.利用Test真正的去测试方法    //3.利用After去还原数据        //需求:测试File类中的delete方法是否书写正确???    @Before    public void beforemethod() throws IOException {        //先备份        File src = new File("C:\\Users\\moon\\Desktop\\a.txt");        File dest = new File("C:\\Users\\moon\\Desktop\\copy.txt"); ​        FileInputStream fis = new FileInputStream(src);        FileOutputStream fos = new FileOutputStream(dest);        int b;        while((b = fis.read()) != -1){            fos.write(b);       }        fos.close();        fis.close();   } ​    //作为一个标准的测试人员,运行完单元测试之后,不能污染原数据    //需要达到下面两个要求:    //1.得到结果    //2.a.txt还在而且其他的备份文件消失    @Test    public void method(){        File file = new File("C:\\Users\\moon\\Desktop\\a.txt");        boolean delete = file.delete(); ​        //检查a.txt是否存在        boolean exists = file.exists(); ​        //只有同时满足了下面所有的断言,才表示delete方法编写正确        Assert.assertEquals("delete方法出错了",delete,true);        Assert.assertEquals("delete方法出错了",exists,false);   } ​ ​    @After    public void aftermethod() throws IOException {        //还要对a.txt做一个还原        File src = new File("C:\\Users\\moon\\Desktop\\copy.txt");        File dest = new File("C:\\Users\\moon\\Desktop\\a.txt"); ​        FileInputStream fis = new FileInputStream(src);        FileOutputStream fos = new FileOutputStream(dest);        int b;        while((b = fis.read()) != -1){            fos.write(b);       }        fos.close();        fis.close(); ​        //备份数据要删除        src.delete(); ​   } }

作业:

测试Properties类中的store方法是否书写正确?

开发心得:

1.Before 准备数据

2.Test 测试方法

3.After 还原

Before

准备数据 1.创建Properties的对象 2.put数据到集合当中 //只不过在下面的方法中,我们也需要用到Properties的对象,所以写完之后要挪到成员位置

Test

调用store方法,保存数据到本地文件 ​ 断言1: 判断当前文件是否存在 断言2: 文件的大小一定是大于0 断言3: 再次读取文件中的数据,判断是否跟集合中一致 ​ 结论: 如果所有的断言都通过了,表示store方法是正确的

After

把本地文件给删除

扩展点:

在单元测试中,相对路径是相对当前模块而言的。

代码示例:

File file = new File("aweihaoshuai.txt"); file.createNewFile(); //此时是把aweihaoshuai.txt这个文件新建到模块中了。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/120374.html

(0)
上一篇 2025-10-30 09:45
下一篇 2025-10-30 10:10

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信