Junit单元测试了解

一、为什么做单元测试

  1. 单元测试的意义第一点在于提高代码质量,单元测试能够检测代码中的潜在问题和错误,及时发现和修复,从而提高代码的质量
  2. 单元测试的意义第二点在于提高可维护性,在保证代码质量的前提下,可以减少后期代码的维护成本,提高可维护性
  3. 单元测试的意义第三点在于提高开发效率,高质量的代码减少了联调时间,从而提高开发效率
  4. 单元测试的意义第四点在于提高团队协作效率和质量
  5. 单元测试的意义第五点在于降低成本和风险

二、单元测试和自动化测试有何区别

  1. 单元测试是对于函数、方法、类进行测试,目的检查单元是否按照设计和预期工作,一般由开发人员进行
  2. 自动化测试是一种测试方法,使用工具或者脚本测试,脚本面向的一般为单接口,以及接口组成的流程测试,自动化测试可以提高测试效率和准确性,但需要投入更多的时间和资源。

三、Junit用法

1.什么是Junit

JUnit是一个Java语言的单元测试框架。它由Kent Beck和Erich Gamma建立,逐渐成为源于Kent Beck的sUnit的xUnit家族中最为成功的一个JUnit有它自己的JUnit扩展生态圈。多数Java的开发环境都已经集成了JUnit作为单元测试的工具。

注意:Junit 测试也是程序员测试,即所谓的白盒测试,它需要程序员知道被测试的代码如何完成功能,以及完成什么样的功能。

2.Junit语法

1.编写被测试类

public class Calculator {
    /**
     * 传入两个参数,求和
     * @param a
     * @param b
     * @return
     */
    public int add(int a,int b){
        return a+b;
    }
    /**
     * 传入两个参数,求差
     * @param a
     * @param b
     * @return
     */
    public int sub(int a,int b){
        return a-b;
    }
}

2.编写测试类

public class CalculatorTest {
     
    @Test
    //测试 add()方法
    public void testAdd(){
        Calculator c = new Calculator();
        int result = c.add(1, 2);
        Assert.assertEquals(result, 3);
    }
     
    @Test
    //测试 sub()方法
    public void testSub(){
        Calculator c = new Calculator();
        int result = c.sub(2, 1);
        Assert.assertEquals(result, 1);
    }
}

3.Junit注解

    1. @Test: 测试方法
      1. (expected=XXException.class)如果程序的异常和XXException.class一样,则测试通过
      2. (timeout=100)如果程序的执行能在100毫秒之内完成,则测试通过
    2. @Ignore: 被忽略的测试方法:加上之后,暂时不运行此段代码
    3. @Before: 每一个测试方法之前运行
    4. @After: 每一个测试方法之后运行
    5. @BeforeClass: 方法必须必须要是静态方法(static 声明),所有测试开始之前运行,注意区分before,是所有测试方法
    6. @AfterClass: 方法必须要是静态方法(static 声明),所有测试结束之后运行,注意区分 @After

4.Junit编写原则

    1. ①测试方法上必须使用@Test进行修饰
    2. ②测试方法必须使用public void 进行修饰,不能带任何的参数
    3. ③新建一个源代码目录来存放我们的测试代码,即将测试代码和项目业务代码分开
    4. ④测试类所在的包名应该和被测试类所在的包名保持一致
    5. ⑤测试单元中的每个方法必须可以独立测试,测试方法间不能有任何的依赖
    6. ⑥测试类使用Test作为类名的后缀(不是必须)
    7. ⑦测试方法使用test作为方法名的前缀(不是必须)

5.Docker在单元测试中的应用

1. 提供环境隔离:Docker可以为每个测试用例提供一个独立的环境,避免测试用例之间的相互影响。

2. 快速构建测试环境:Docker可以快速构建需要的测试环境,节省了构建测试环境的时间。

3. 可重复性:Docker可以保证每次测试使用的环境是相同的,从而保证测试的可重复性。

4. 可移植性:Docker可以将测试环境打包成镜像,方便在不同的环境中使用,提高了测试的可移植性。

5. 版本控制:Docker可以将测试环境的镜像版本进行版本控制,方便回滚和追踪问题。 

6.Docker常见命令

1. docker run:运行一个Docker容器
2. docker pull:从Docker镜像仓库拉取一个镜像
3. docker push:将一个Docker镜像推送到镜像仓库
4. docker build:通过Dockerfile构建一个Docker镜像
5. docker images:列出本地所有Docker镜像
6. docker ps:列出所有正在运行的Docker容器
7. docker stop:停止一个正在运行的Docker容器
8. docker rm:删除一个已经停止的Docker容器
9. docker rmi:删除一个Docker镜像
10. docker exec:在一个正在运行的Docker容器中执行一个命令
11. docker logs:查看一个Docker容器的日志
12. docker inspect:查看一个Docker容器的详细信息
13. docker network:管理Docker网络
14. docker-compose:使用docker-compose文件管理多个Docker容器

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值