使用CPPUNIT进行单元测试(1)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

恶性循环
每个程序员都知道他应该为自己的编写 的代码准备一份测试代码,但是很少 有人真的这么去做。最通常的“答案” 是因为“我太忙了。” 这是一个恶性循环。通常情况下,没有 经过严格测试的代码的逻辑错误会比 预想的要多的多。而这些代码直接被 使用会带来更复杂和更多的问题等待 程序员去解决。而解决这些问题时, 不但给程序员带来更多的工作,而且 还带来更多的挫折感。
讨论内容
单元测试的基本概念 XUnit架构
单元测试的基本概念
什么是单元测试 为什么要使用编程方式的单元测试 谁来进行单元测试 单元测试所涉及的范围 单元测试给我们带来的帮助
XUnit
XUnit的结构 XUnit的运行过程
开始……
身边的世界
– 只有少数程序员在提交的自己编写的代 码之前对代码进行了充分的测试。 – 项目经理很难在开发阶段还能对项目进 行有效的进度的控制。因为他无法确切 的知道哪些代码是可用的,哪些代码是 不可用的。
XUnit-CPPUNIT中的Help Macro
为了方便开发人员进行单元测试代码 的开发,CppUnit提供了丰富的宏。 常用的和单元测试框架相关的代码都 可以通过宏来实现。 CPPUNIT_TEST_SUITE()
– 开始创建一个TestSuite
CPPUNIT_TEST()
– 添加TestCase
基本概念-谁来进行单元测试
开发人员
– 验证既有代码
测试人员
– 自动测试
基本概念-单元测试的范围
单元测试只针对很小的一个范围,即: “单元”。 单元测试需要验证该单元的正确的逻 辑。 单元测试需要测试该单元的各种异常 处理的执行情况 单元测试会统计代码的覆盖率
基本概念-单元测试带来的好处
是其他类型测试的基石 使得开发组协同工作更高效 使得代码得以不断的改进 改进现有的设计 是最好的开发文档
XUnit-什么是测试框架?
测试框架提供了可重用的功能:
方便使用(比如:不需要为每个测试写 相同的代码) 应该是标准的而且可以重用的 提供了进行回归测试的基础支持
XUnit-为什么使用测试框架
所有的代码都必须在它进行开发的时 候也同时进行测试。 每个测试单元都需要进行回归测试 回归测试需要标准的访问接口 通过测试框架我们可以在构建代码的 同时构建回归测试,从而用更少的工 作量提供更可靠的代码。
最根本的类是TestCase
XUnit测试框架
XUnit中的几个重要的概念
– Test Suite – Test Case – Test method
– fixture
XUnit-setUp方法和tearDown方法 (fixture)
在setUp方法中进行准备工作 在tearDown方法中进行回收工作 在CPPUNIT中,通过继承 CppUnit::TestFixture 来实现fixture功 能
准备好了!
我已经准备好了所有行李,从现在起, 开始我们的测试之旅!
基本概念-什么是单元测试
基本概念-什么是单元测试
测试通常被划分为: 单元测试
– 对独立的代码“单元”进行测试。“单 元”通常指一个类或者一个功能代码文 件。
集成测试
– 对一组代码模块进行测试。如一个 package,或者一个按照业务逻辑划分的 功能模块。
使用cppunit进行单元测试概述上海复旦金仕达计算机有限公司技术总部沈淦shengankingstargroupcom讨论内容单元测试的基本概念xunit架构单元测试的基本概念单元测试给我们带来的帮助xunitxunit的结构xunit的运行过程开始
使用CPPUNIT进行单元测试
-概述
上海复旦金仕达计算机有限公司 技术总部 沈淦 shengan@
系统测试
– 测试最终会提交给用户的应用。通常是 黑盒测试。
基本概念-为什么要使用编程方式的单元测 试
单元测试的几种模式
– 逻辑单元测试 针对单个方法进行的编程方式的测试。 – 功能单元测试 在集成的环境中,通过手工的或者自动 的对单一的功能进行调用来验证该功能 的正确性。
基本概念-为什么要使用编程方式的单元测 试 由实现代码的编程人员自己完成。他 更了解这段代码的意图。也能更好的 提供测试代码 针对代码的单元测试是其他测试的基 石 只有阅读了源码,才能写出更有针对 性的单元测试用例。
XUnit-什么是JUnit?
JUnit是回归测试的杰出实现。 它提供了一个可由开发人员自由扩展 的框架 junit.framework.TestCase
XUnit-CPPUnit
CPPUnit是JUnit在C++领域的实现
XUnit测试框架
软件结构
– 依赖倒置(Inversion of control) – Do NOT call us,we will call you
CPPUNIT_TEST_SUITE_END()
– 结束创建TestSuite
XUnit-CPPUNIT中的断言
XUnit通过断言(Assert)来判断测试 是否通过。 CPPUNIT_ASSERT(condition) CPPUNIT_FAIL(message) CPPUNIT_ASSERT_EQUAL(expected, actual) CPPUNIT_ASSERT_DOUBLES_EQU AL(expected, actual, delta) CPPUNIT_ASSERT_THROW(expressi on, ExceptionType)
XUnit-XU期
setUp() testFFF() tearDown() 重复上面的三个步骤,完成另一个测 试方法。
Q&A
相关文档
最新文档