`

TDD与单元测试

阅读更多

一.TDD开发过程

        回顾TDD的开发过程,我们是在不断重复如下过程,直至需求完成。


二.TDD的收益


三.单元测试

        TDD是测试驱动开发,理所当然与单元测试有着密不可分的关系。

1.单元测试的目的:
a.拥抱变化
b.保证质量
c.好的单元测试可用来做为文档
d.也是一个重要的设计工具

2.单元测试过程:3A

3.测试类
a.命名:[被测试类]Test
b.测试类与被测试类在相同的包名下
c.一个被测试类对应一个测试类

4.测试目的和意图:
a.通过方法名表达测试目的和意图
b.Given-When-Then

5.测试方法:
a.案例一定要有验证
b.一个测试案例只测一个场景
c.案例独立不要互相依赖
d.测试方案中不要try/catch异常
e.测试方法中不要出现System.out或者Logger

6.测试用例三部曲:Arrange-Act-Assert

7.为什么要写单测:
a.快速反馈
b.自信
c.进度可视化
d.明确目标
e.聚焦
f.说明书
g.回归测试
h.拆分功能
i.可测试
j.质量保证
k.设计

8.Junit Cheat Sheet
a.Annotations
@Test
b.Assertions
assertEquals
assertTrue/assertFalse
assertNull/assertNotNull
assertSame/assertNotSame:比较引用
fail/pass

9.单元测试
Adv.Assertion
a.约束验证:assertThat([actual],[matcher])
is(true)
not(nullValue())
either(containsTring("a")).or(containsString("b"))
anyOf(containsString("a"),containsString("b"))
hasItem(orderl)
b.第三方/自定义断言
c.每个测试案列
准备:@Before
清理:@After
d.每个测试类
准备:BeforeClass
清理:AfterClass

10.单元测试样例
public class StringParserTest {
@Rule
public ExpectedException expectedException = ExpectedException.none();

@Test
public voi should_throw_exception_when_given_character() {
   expectedException.expect(IllegalArgumentException.class);
   expectedException.expectMessage("Argument should be int");
  
   new StringParser().parseAndSum("a");
}

@Test(expected = IllegalArgumentException.class)
public void should_throw_exception_when_given_null() {
   new StringParser().parseAndSum(null);  
}
}

Timeout
public class SquareTest {
    @Test(timeout = 1000)
    public void squareRoot() {
        calculator.squareRoot(4);
        assertEquals(2, claculator.getResult());
    }
}

参数化运行Junit
@RunWith(Parameterized.class)
public class EmailUtilsParameterizedTest {
    @Parameterized.Parameters
    public static Collection<Object[]> data() {
   
        return Arrays.asList


@RunWith(Theories.class)
public class EmailUtilsTheoryTest {
@DataPoints
public static TestData[] ARRAYS = new

@Theory

11.Test Data
a.Data Mother
b.Test data organization Builder

 

  • 大小: 191.4 KB
  • 大小: 307.7 KB
  • 大小: 244.6 KB
分享到:
评论

相关推荐

    单元测试与TDD实践

    单元测试与TDD实践 **一、单元测试之测试目的** 单元测试,作为软件开发过程中的重要环节,其核心目标在于确保代码的质量、可维护性和可扩展性。它通过独立测试软件中的最小可测试单元,如函数或方法,来验证其...

    TDD单元测试

    **TDD单元测试详解** 测试驱动开发(Test-Driven Development,简称TDD)是一种软件开发方法,它强调在编写实际代码之前先编写测试用例。这种方法由Kent Beck在其著作《Test-Driven Development: By Example》中...

    Qt TDD 单元测试实例及库

    包含编译出的三个必须的链接文件: libcppunit.a libqxcppunitd.a libqxrunnerd.a ,及main.cpp实例和简单的test格式。 可用来针对Qt的程序进行单元测试

    EmbedC_TDD__1 Keil中搭建自动化单元测试框架Unity

    本主题将聚焦于如何在基于C语言的嵌入式环境,特别是在Keil IDE中,利用Unity这个轻量级的单元测试框架来搭建自动化测试流程。 Unity是一个专门为微控制器和嵌入式系统设计的开源单元测试框架。它的特点是小巧、...

    C-C++项目的测试驱动开发(TDD):从单元测试到集成测试.md

    在C/C++项目中应用测试驱动开发(TDD)的方法,从单元测试到集成测试,详尽介绍了测试的基础、框架选择、实际应用及最佳实践。文章首先阐述了TDD的核心理念及其优势,包括提升代码质量、减少错误和改进设计等。接着...

    单元测试实例(C#版)

    (C#语言版)单元测试实例,主要功能包括:(1)输入数据到textbox,以逗号间隔,然后求数组最大值、求和,并将结果显示出来,并针对于数组求最大值函数和求和函数写单元测试代码;(2)连接数据库,写出单元测试代码来测试求...

    单元测试:单元测试案例:测试驱动开发(TDD)原理与实践.docx

    单元测试:单元测试案例:测试驱动开发(TDD)原理与实践.docx

    TDD测试驱动开发

    1. 编写测试:首先,开发者编写一个失败的单元测试,这个测试针对即将实现的功能。这称为"红"阶段,因为测试会因未实现的功能而失败。 2. 实现功能:然后,开发者编写最小的代码量,使刚刚创建的测试通过。这一步...

    TDD驱动测试开发培训

    测试驱动开发(TDD)是一种软件开发方法,它要求开发者首先编写失败的单元测试用例,然后再编写足够的代码以使测试通过。接下来,开发者会对代码进行重构以改善设计,同时确保测试依然能够通过。这个过程循环进行,...

    VS2005单元测试TDD代码

    在VS2005中,微软引入了内置的单元测试框架,使得开发者能够方便地进行TDD实践。 **单元测试**是软件开发中的一个重要环节,它对程序的最小可测试单元进行验证,确保每个模块的功能正确无误。在VS2005中,我们可以...

    TDD 测试驱动开发 文档 详细

    2. 单元测试的基础:了解如何编写有效的单元测试,包括断言、隔离和覆盖所有可能的执行路径。 3. 使用mekito进行模拟:学习如何使用mekito创建和配置模拟对象,以及如何使用它来测试复杂的依赖关系。 4. TDD在敏捷...

    单元测试之道(C#)

    单元测试之道(C#),TDD, 单元测试之道(C#),TDD, 单元测试之道(C#),TDD

    关于测试和TDD

    在描述中提到的“我公司的测试规范”,意味着讨论的是公司内部的测试流程、标准和指南,这些规范可能包括单元测试、集成测试、系统测试等不同层次的测试策略,以及如何进行测试文档的编写和维护。博文链接指向了一个...

    测试驱动编程 TDD 实例

    TDD强调在编写实际功能代码之前,先编写能够失败的单元测试,确保测试覆盖了预期的功能需求。这种方式有助于开发者更早地发现和修复问题,提高代码质量和可维护性。 在“测试驱动编程 TDD 实例”中,我们将探讨如何...

    TDD测试驱动开发.pptx

    单元测试不仅覆盖了核心功能的正常流程,还关注了边界条件、异常情况,甚至是潜在的缺陷。TDD推动了开发人员在编码前进行周密的设计,提高了程序健壮性和稳定性。 采用TDD的另一个优点是能够促进设计的改进。由于...

    单元测试:单元测试与TDD.zip

    史上最全软件测试技术全套教程,包括: Postman Selenium 单元测试 压力测试 回归测试 安全测试 性能测试 测试工具 集成测试 等流行技术的系列教程

    TDD:Python中的TDD和单元测试实践

    在Python中,TDD可以通过使用诸如`unittest`、`pytest`或`nose`等单元测试框架来实现。这些框架提供了编写和运行测试用例的结构和工具,使得测试过程更为规范和高效。 1. **unittest框架**:Python的标准库中内置了...

    测试驱动开发(TDD)入门讲解及代码实例

    测试驱动的编程是让 程序员测试(即单元测试 ― 重申一下,只是换用一个术语)决定您所编写的代码。这意味着您必须在编写代码之前进行测试。测试指出您 需要编写的代码,从而也 决定了您要编写的代码。您只需编写...

    PHP 测试框架 TDD

    在PHP世界中,TDD可以帮助开发者构建更健壮、可维护的代码,通过不断的单元测试确保代码质量。本篇文章将深入探讨PHP测试框架在TDD环境下的应用。 首先,我们要理解TDD的基本流程:**红-绿-重构**。"红"阶段意味着...

Global site tag (gtag.js) - Google Analytics