文章 2017-08-01 来自:开发者社区

《测试驱动的嵌入式C语言开发》——3.3节写一个测试列表

3.3 写一个测试列表在开发新功能之前先创建一个测试列表会很有帮助。测试列表由需求衍生而来。测试列表定义了你对将需要完成的功能的最好的理解。这个列表不需要很完美。它只是个临时的文档,可能只记在一张卡片上或者笔记本上。你也可以直接把它当做注释输入到测试文件中。随着每个测试的添加,对应的注释将被删除。不要在写作这个列表上花太多时间,对于LED驱动程序来讲,花几分钟即可。我的初始测试列表如图3-1所示....

文章 2017-08-01 来自:开发者社区

《测试驱动的嵌入式C语言开发》——3.2节LED驱动都做些什么

3.2 LED驱动都做些什么假设我们的系统用LED来与系统的用户或者开发者沟通系统的状态,我们将需要一个LED的驱动程序。以下是我们所知的LED驱动程序的需求: 控制16个有两个状态的LED。 可以在不影响其他LED的情况下打开或者关闭任意一个LED。 通过单一的接口调用来打开所有的LED。 LED驱动程序的用户可以查询任何LED的状态。 当加电时,硬件的默认状态是所有的LED都锁定在打开状态.....

文章 2017-08-01 来自:开发者社区

《测试驱动的嵌入式C语言开发》——3.1节具有可测性的C模块的那些元素

3.1 具有可测性的C模块的那些元素本书中的示例将采用模块这个概念。在我们的目的之下,模块就是系统中一个完备的部分,它有明确定义的接口。这个定义并没有讲一个模块有多大。在本书中,我们只会用很小的模块。这些示例中的模块会恰好与编译单元相同,然而在现实世界中,并不是所有的模块都与某个单一的编译单元相对应。你会发现可测试的代码需要模块化。你还会发现TDD会自然而然地产生模块化设计。可测试性对于测试有相....

文章 2017-08-01 来自:开发者社区

《测试驱动的嵌入式C语言开发》——第3章开始一个C语言模块

第3章 开始一个C语言模块在本章里,我会带你浏览用测试驱动来开发一个新的C模块首先要经历的那些步骤。在第4章里,我们则会全速前进来完成这个模块。从这一章开始并且贯穿本书,我们会关注到底能不能实现Dijkstra的不引入bug的愿景。我们所用的工具就是TDD。

文章 2017-08-01 来自:开发者社区

《测试驱动的嵌入式C语言开发》——2.6节我们到哪里了

2.6 我们到哪里了到这里,你应当对Unity和CppUTest的概况有了很好的了解,并且明白了如何用测试夹具和测试用例来定义测试。到目前为止你还没有看到测试驱动开发(TDD),为sprintf()写的那些测试并不是TDD,因为sprintf()是已经存在的代码。请你把新学到的知识运用到接下来的练习中。在接下来的两章中我们会用测试驱动来开发一些新代码。学以致用 在开发平台上建立一个测试环境。你.....

文章 2017-08-01 来自:开发者社区

《测试驱动的嵌入式C语言开发》——2.5节 “四阶段”模式

2.5  “四阶段”模式在Gerard Meszaros所著的《xUnit Testing Patterns》一书中,他描述了“四阶段”测试模式,我将贯穿于本书使用这种模式。这种模式的目的是创建明确、可读并且结构良好的测试。如果你遵循这个模式,阅读测试的人会很快明白要测试的是什么。Gerard的四个阶段分别是: 建立:创建测试的前置条件。 运行:对系统进行操作。 验证:检查预期的输出。 拆卸:.....

文章 2017-08-01 来自:开发者社区

《测试驱动的嵌入式C语言开发》——2.4节单元测试也会崩溃

2.4 单元测试也会崩溃运行测试还有一个可能结果,那就是崩溃。通常意义上讲,C不是一种安全的语言。C代码可能会不知道跑到哪里,再也不返回了。sprintf()就是一个危险的函数。如果你传入的缓冲太小,内存就会被破坏。这个错误也许会让整个系统马上崩溃。它也可能会在以后崩溃。这时的行为很难说。结果是,一个测试可能无声息地运行通过并结束,或者提前退出运行但看上去没有错误,也可能是“嘣”地一声崩溃。当你....

文章 2017-08-01 来自:开发者社区

《测试驱动的嵌入式C语言开发》——2.3节CppUTest:一个用C++实现的自动化单元测试框架

2.3 CppUTest:一个用C++实现的自动化单元测试框架现在你已经见过了Unity,接下来我会快速介绍一下CppUTest,同时也是我更倾向于使用的对C和C++代码进行单元测试的自动化测试框架。事实上,不仅因为它是一个功能全面的测试框架,同时也因为我是CppUTest的作者之一。本书开始的几个例子会用Unity,在第8章之后会使用CppUTest。CppUTest是为了支持在多种操作系统上....

文章 2017-08-01 来自:开发者社区

《测试驱动的嵌入式C语言开发》——2.2节Unity:一个全部用C实现的自动化测试框架

2.2 Unity:一个全部用C实现的自动化测试框架Unity是一个简单且直接的自动化单元测试框架。它由很少的几个文件构成。让我们通过几个示例单元测试用例来认识一下Unity和单元测试。如果你是一个长期的Unity用户,你会发现如果不用Unity所提供的脚本来生成测试运行容器,那么额外的几个宏可能会很有帮助。用Unity写的sprintf()测试用例 测试要写得短并且有重点。可以把它想象成一个安....

文章 2017-08-01 来自:开发者社区

《测试驱动的嵌入式C语言开发》——2.1节什么是自动化单元测试框架

2.1 什么是自动化单元测试框架自动化单元测试框架就是一个软件包,它能让程序员表达产品代码应该有什么样的行为。自动化单元测试框架的工作就是要提供以下能力: 用于表述测试用例的通用语言; 用于表述期望结果的通用语言; 能够使用产品代码所用编程语言的功能; 能把所有的工程、系统或子系统中的单元测试用例收集到一起; 一个能运行全部或者部分测试用例的机制; 对于测试套件的成功和失败给出明确的报告; 对.....

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

产品推荐

开发与运维

集结各类场景实战经验,助你开发运维畅行无忧

+关注