• 使用VS2012 C++ 进行单元测试


    第一步 使用VS2012新建一个的控制台项目main,编辑main.cpp文件 ,代码如下

    // main.cpp : 定义控制台应用程序的入口点。
    //
    #include "stdafx.h"
    
    int add(int a,int b)
    {
    	return a+b;
    }
    
    int  minus(int a,int b)
    {
    	return a-b;
    }
    
    class CMath
    {
    public:
    	CMath();
    	~CMath();
    	int mul(int a,int b);
    private:
    
    };
    
    CMath::CMath()
    {
    }
    
    CMath::~CMath()
    {
    }
    int CMath::mul(int a,int b)
    {
    	return a*b;
    }
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    	return 0;
    }
    

    编译 运行正确。

    第二步,在解决方案里面添加一个单元测试项目 名称为UnitTestMain,如下图

     

    第三步 , 将main工程文件目录 添加到UnitTestMain工程中的包含目录,

       解决方案资源管理器 右键单击UnitTestMain工程属性-》VC++目录-》包含目录更改。

    第四步,编辑UnitTestMain工程的unittest1.cpp ,代码如下

    #include "stdafx.h"
    #include "CppUnitTest.h"
    
    #include "main.cpp"
    
    using namespace Microsoft::VisualStudio::CppUnitTestFramework;
    
    namespace UnitTestmain
    {		
    	TEST_CLASS(NoClass)
    	{
    	public:
    		
    		TEST_METHOD(add_Test)
    		{
    			// TODO: 在此输入测试代码
    			Assert::AreEqual(10,add(5,5));
    			Assert::AreEqual(1,add(-4,5));
    			
    			Assert::AreNotEqual(1,add(15,5));
    		}
    
    		TEST_METHOD(minus_Test)
    		{
    			// TODO: 在此输入测试代码
    			Assert::AreEqual(0,minus(5,5));
    			Assert::AreEqual(-4,minus(1,5));			
    			Assert::AreNotEqual(1,minus(5,5));
    		}
    
    	};
    
    
    	TEST_CLASS(CMath_Test)
    	{
    	private:
    		CMath m_math;
    	public:
    		
    		TEST_METHOD(mul_Test)
    		{
    			// TODO: 在此输入测试代码
    			Assert::AreEqual(10,m_math.mul(2,5));
    			Assert::AreEqual(15,m_math.mul(3,5));			
    			Assert::AreNotEqual(1,m_math.mul(15,5));
    		}
    
    	};
    }
    

      代码说明 

         TEST_CLASS 宏用来填写你用 测试用例的类,名字可以随便写,但切忌不要和待测试代码的类名字相同,你也不想命名冲突吧。所以我一般取名 就是 待测类名_Test,非类函数直接NoClass。 

      TEST_METHOD 宏用来定义被测试方法的函数,名字也可以随便写。  

      给出了 一般非类测试,和类单元测试的简单代码。当然类的成员变量也可以定义测试函数中。

     

    第五步, 编译,生成,运行UnitTestMain工程。

       在解决方案资源管理器中 右键单击UnitTestMain-》生成

       菜单中 测试-》运行-》所有测试, 

      菜单中 测试 -》 窗口-》 测试管理器 中查看测试结果,或者测试代码覆盖率

      

      另外在测试工程中的测试源文件中,在测试函数中可以鼠标右键-》运行测试  只测试某一个测试函数。 

      最后附上测试结果图

  • 相关阅读:
    FFmpeg 协议初步学习
    HTML DOM(一):认识DOM
    ant 安装
    ubunut 查看port被哪个程序占用
    cacti气象图调整(批量位置调整、更改生成图大小等)
    内网port映射具体解释(花生壳)
    HDU 2647 Reward(图论-拓扑排序)
    白话经典算法系列之七 堆与堆排序
    Codeforces Round #191 (Div. 2)---A. Flipping Game
    Serverlet具体解释
  • 原文地址:https://www.cnblogs.com/wolfrickwang/p/3767306.html
Copyright © 2020-2023  润新知