孤尽训练营打卡日记day23--单元测试

前言

        在我们的开发流程中,需求调研 -> 项目立项 -> 设计产品 -> 开发 ->测试 -> 发布,测试也是非常重要的一环,只有经过严格测试的产品,才能投入使用。如果一个产品不经过测试,直接上线是有非常大的风险的,出现问题会导致公司的名誉受损,如三星的note 7 爆炸时间。今天我们跟着Joel老师一起学习一下单元测试。

软件测试

  •         指的是通过手工或工具对被测对象进行测试操作
  •         以此来验证实际结果与预期之间是否存在差异
  1.         验证软件的正确性
  2.         找出软件的bug

项目的研发和测试生命周期

 单元测试

        对软件组成单元进行的测试,其目的是检验软件基本组成单位的正确性。测试对象是软件设计的最小单元:模块,又称模块测试

单元测试好处

  • 提高软件质量
  • 促进代码优化
  • 提升研发效率

单元测试的AIR原则

 A (Automatic)自动化

        能一键自动化执行,或者说是关闭我们的单元测试

I(Independent)独立性

        无论各个模块,接口,对外的依赖,每个单元不要相互依赖,要达到独立性。如果相互依赖,环境就是不稳定的,测出来的也是不准确的,要求独立测试,不能相互依赖

R(Repeatable)可重复性

        没有新的代码加入,要可以可重复性,后面的改造,要继续能使用

单元测试的 BCDE 原则

B:Border 边界值测试

C:Correct 正确的输入,并得到预期的结果

E:Error 证明程序有错

D:Design 与设计文档相结合

功能性测试之边界值测试

常见单元测试框架

名称 简介 备注
Junit 一个开放源代码的Java测试框架,用于编写和运行可重复的测试 Java语音中被广泛应用的框架
Mockito 一个mock工具,用于模拟各种对象和组件,模拟函数返回值,模拟void类型的异常 模拟还没有实现的功能及比较重的对象,使单元测试更加独立

Spring

-test

集成各种测试框架
Hamcrest 一个测试的框架,他提供了一套通用的匹配符Mather,灵活使用这些匹配符定义的规则 可以更加精确的表达自己的测试思想,指定所想设定的测试条件
JSNassert 一个专门用于Json 断言的工具
JsUnit JavaScript客户端(在浏览器下)的单元测试框架
DBUnit Junit的扩展,用于进行数据库的单元测试框架
HttpUnit Web应用的单元测试框架,通常用Junit结合一起使用
JunitEE JavaEE 的单元测试框架

测试框架示例

Junit

依赖

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

测试类以 Test 结尾,测试方法以 test开头

可以用idea 编辑器快速生成测试类

点击类名

Alt + Enter 

 代码

@RunWith(SpringRunner.class)
@SpringBootTest
class ICrudServiceTest {

    @Test
    void listPage() {
    }

    @Test
    void list() {
    }
}

宝剑锋从磨砺出,梅花香自苦寒来。
 

猜你喜欢

转载自blog.csdn.net/qq_35056844/article/details/121389368