网站建设高手要学多久,运城网站建设求职简历,网站建设吉金手指排名14,网站维护的要求包括前言 在软件开发的过程中#xff0c;单元测试(Unit testing)是一个重要的coding步骤#xff0c;可以让你的程序代码质量大幅提升、协助你进行良好的程序架构设计#xff0c;单元测试是针对程序单元(软件设计的最小单位)来进行正确性检验的测试工作#xff0c;在程序化编程中…前言 在软件开发的过程中单元测试(Unit testing)是一个重要的coding步骤可以让你的程序代码质量大幅提升、协助你进行良好的程序架构设计单元测试是针对程序单元(软件设计的最小单位)来进行正确性检验的测试工作在程序化编程中一个单元就是单个程序、函式、过程等对于对象导向编程最小单元就是方法包括基础类别超类、抽象类、或者衍生类别子类别中的方法。
想要在VC项目中进行单元测试的Framework有很多选择例如: CPPUnit、Google GTest...等自Visual Studio 2012开始提供了内建的单元测试框架Microsoft.VisualStudio.TestTools.CppUnitTestFramework并且与VS高度整合。 建立Production Code项目 Step 1. 建立Production Code 首先建立一个基本的Win32主控台应用程序项目: 在此以一个简单的计算器为范例请新增Calculator.h与Calculator.cpp并撰写以下程序代码:
Calculator.h view sourceprint? 01.#ifndef _CALCULATOR_H_ 02.#define _CALCULATOR_H_ 03. 04.namespace CalculatorProject 05.{ 06.class Calculator 07.{ 08.public: 09.int add(int x, int y); 10.int minus(int x, int y); 11.int multiply(int x, int y); 12.int divide(int x, int y); 13.}; 14.} 15. 16.#endif /* _CALCULATOR_H_ */ Calculator.cpp view sourceprint? 01.#include Calculator.h 02.using namespace CalculatorProject; 03. 04.int Calculator::add(int x, int y) 05.{ 06.return xy; 07.} 08. 09.int Calculator::minus(int x, int y) 10.{ 11.return x-y; 12.} 13. 14.int Calculator::multiply(int x, int y) 15.{ 16.return x*y; 17.} 18. 19.int Calculator::divide(int x, int y) 20.{ 21.return x/y; 22.} 撰写完成后项目应该如下图所示: Step 2. 设定Production Code组态 请在方案总管中对CalculatorProject按右键于项目属性窗口中[组态属性]-[一般]-[项目默认值]-[组态属性]设定成静态链接库 (.lib) 建立测试项目 Step 3. 建立测试项目 请在同一方案中新增测试项目: Step 4. 设定测试项目组态 请在方案总管中对CalculatorProjectUnitTest按右键于项目属性窗口中进行以下设定:
1. 在[VC目录]-[Include目录]设定参考Production Code的标头档 2. 在[VC目录]-[链接库目录]设定参考Production Code预设的lib输出位置 3. 在[连结器]-[输入]设定连结Production Code输出的lib Step 5. 撰写测试程序代码 可以先将测试项目预设的unittest1.cpp更名为CalculatorTest.cpp建议命名规则如下: TEST_CLASS命名原则: ClassName Test其中ClassName 为对应测试Production Code里头的类别名称 TEST_METHOD命名原则: test MethodName其中MethodName为对应测试Production Code里头的方法名称
以下为几点注意事项:
1. 记得引入欲测试的类别之标头档如: 引入#include Calculator.h
2. TEST_METHOD_INITIALIZE(setUp) 、TEST_METHOD_CLEANUP(tearDown) 为执行每一个TEST_CASE前、后会执行的Code
3. 可以使用Logger::WriteMessage()来记录测试中需要输出的信息
CalculatorTest.cpp view sourceprint? 01.#include stdafx.h 02.#include CppUnitTest.h 03.#include Calculator.h 04.#include iostream 05.using namespace std; 06.using namespace Microsoft::VisualStudio::CppUnitTestFramework; 07. 08.namespace CalculatorProject 09.{ 10.TEST_CLASS(CalculatorTest) 11.{ 12.private: 13.Calculator *calculator; 14.public: 15.TEST_METHOD_INITIALIZE(setUp) 16.{ 17.// method initialization code 18.Logger::WriteMessage(CalculatorTest setUp()\n); 19.calculator new Calculator(); 20.} 21. 22.TEST_METHOD_CLEANUP(tearDown) 23.{ 24.// test method cleanup code 25.Logger::WriteMessage(CalculatorTest tearDown()\n); 26.delete calculator; 27.} 28. 29.TEST_METHOD(testAdd) 30.{ 31.Assert::AreEqual(9, calculator-add(6,3)); 32.Logger::WriteMessage(testAdd() finish testing!\n); 33.} 34. 35.TEST_METHOD(testMinus) 36.{ 37.Assert::AreEqual(3, calculator-minus(6,3)); 38.Logger::WriteMessage(testMinus() finish testing!\n); 39.} 40. 41.TEST_METHOD(testMultiply) 42.{ 43.Assert::AreEqual(18, calculator-multiply(6,3)); 44.Logger::WriteMessage(testMultiply() finish testing!\n); 45.} 46. 47.TEST_METHOD(testDivide) 48.{ 49.Assert::AreEqual(2, calculator-divide(6,3)); 50.Logger::WriteMessage(testDivide() finish testing!\n); 51.} 52.}; 53.} Step 6. 开启测试总管进行测试 撰写完成测试程序代码并且建置完成后在工具列的[测试]-[窗口]-[测试总管]叫出测试总管画面可以看到我们刚刚撰写的测试范例正等待我们去执行: 按下黄框处的[全部执行]即可开始执行单元测试啦!
执行完测试后我们选取该测试单元在下方会出现[输出]的按钮可以叫出测试时使用Logger纪录的信息欧~ 有可以针对测试结果进行Code Coverge分析: 结论 相信透过上面这个简单的小范例读者应该可以建立出属于自己的Testing项目VS 2012提供的测试项目与测试窗口让我们可以更方便的进行测试工作让我们一起建构强健、好用的应用程序吧!! ^_^