加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

TDD与单元测试

发布时间:2020-12-13 22:45:54 所属栏目:百科 来源:网络整理
导读:一.TDD开发过程 回顾TDD的开发过程,我们是在不断重复如下过程,直至需求完成。 二.TDD的收益 三.单元测试 TDD是测试驱动开发,理所当然与单元测试有着密不可分的关系。 1.单元测试的目的: a.拥抱变化 b.保证质量 c.好的单元测试可用来做为文档 d.也是一个

一.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 Dataa.Data Motherb.Test data organization Builder

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读