浅析Visual Studio中VC++单元测试原理

本文介绍如何在VS2015中使用MFC进行单元测试,包括通过新建本地单元测试项目来测试MFC工程的方法,解析测试工程的生成原理,以及自建测试程序的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

接上一篇文章,VS2015中对MFC工程进行单元测试,当我们通过VS: 文件->新建->项目->Visual C++->测试->本机单元测试项目,新建一个测试工程后,查看unittest1.cpp的代码,会发现代码是这样的:

#include "stdafx.h"
#include "CppUnitTest.h"

using namespace Microsoft::VisualStudio::CppUnitTestFramework;

namespace UnitTest1
{		
	TEST_CLASS(UnitTest1)
	{
	public:
		
		TEST_METHOD(TestMethod1)
		{
			// TODO: 在此输入测试代码

		}
	};
}

8~17行的代码看起来象是一个类的格式,追踪TEST_CLASS宏,发现定义如下:

#define TEST_CLASS(className) \
ONLY_USED_AT_NAMESPACE_SCOPE class className : public ::Microsoft::VisualStudio::CppUnitTestFramework::TestClass<className>

原来TEST_CLASS宏定义了一个类,该类继承自::Microsoft::VisualStudio::CppUnitTestFramework::TestClass。

再查看测试工程属性->常规->配置类型,为“动态库(.dll)”,就明白了测试工程是一个dll工程,编译该工程,最后确实也生成了一个dll文件。看来该工程是生成了一个类,并使该类可导出,即可供外部调用的类。这个dll有点类似于一个插件。

因此运行测试时,应该是某个程序调用了该dll中的类并实例化,然后再调用了类中的测试函数。

测试过程就是,测试程序 -> 测试DLL ->被测代码, 感觉中间通过DLL的方式有点多余了,我何不自建测试程序,将测试过程改为:测试程序 -> 被测代码。

自己创建测试程序的过程与用VS向导生成测试工程的过程,除了新建工程时选MFC应用程序,写测试代码的过都差不多。具体可参见VS2015中对MFC工程进行单元测试

测试工程的代码见示例:https://download.youkuaiyun.com/download/zztoll/12258555

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值