Visual Studio 使用教程:在Visual Studio中编写C ++ DLL的单元测试

翻译|使用教程|编辑:况鱼杰|2020-03-31 14:01:09.617|阅读 32 次

概述:有多种测试DLL代码的方法,具体取决于它是否导出要测试的功能。本文将会介绍几种测试DLL代码的方法。

# 您正在找协同办公软件吗?点击这里站长给您推荐 #

相关链接:

Visual Studio是功能完备的 IDE,可用于编码、调试、测试和部署到任何平台,Visual Studio使用 .NET 开发 iOS、Android 和 Web 应用和游戏。

点击立即下载Visual Studio


有多种测试DLL代码的方法,具体取决于它是否导出要测试的功能。选择以下方式之一:
  • 单元测试仅调用从DLL导出的函数:按照编写C / C ++单元测试中所述添加单独的测试项目。在测试项目中,添加对DLL项目的引用。
  • DLL被构建为.exe文件:添加一个单独的测试项目。将其链接到输出目标文件。
  • 单元测试调用未从DLL导出的非成员函数,并且DLL可以构建为静态库:更改DLL项目,以便将其编译为.lib文件。添加一个单独的测试项目,该项目引用被测项目。这种方法的好处是允许您的测试使用未导出的成员,但仍将测试保留在单独的项目中。
  • 单元测试必须调用未导出的非成员函数,并且代码必须构建为动态链接库(DLL):在与产品代码相同的项目中添加单元测试。

创建测试
将DLL更改为静态库

  • 如果您的测试必须使用DLL项目未导出的成员,并且被测试项目被构建为动态库,请考虑将其转换为静态库。
    • 在解决方案资源管理器中,在要测试的项目的快捷菜单上,选择“属性”。将打开项目“属性”窗口。
    • 选择“配置属性>常规”。
    • 将配置类型设置为静态库(.lib)。

引用测试项目中导出的DLL函数

  • 如果DLL项目导出了要测试的功能,则可以从测试项目中添加对代码项目的引用。
    • 创建一个本机单元测试项目。
      • 在“文件”菜单上,选择“新建”>“项目”。在“添加新项目”对话框中,将“语言”设置为C ++,然后在搜索框中键入“ test”。然后选择“本机单元测试项目”。
    • 在解决方案资源管理器中,右键单击测试项目,然后选择“添加”>“引用”。
    • 选择项目,然后选择要测试的项目。
    • 选择添加按钮。
    • 在测试项目的属性中,将被测试项目的位置添加到“包括目录”中。
    • 选择“配置属性”>“ VC ++目录”>“包含目录”。选择“编辑”,然后添加要测试的项目的头目录。

将测试链接到对象或库文件

  • 如果DLL没有导出要测试的功能,则可以将输出.obj或.lib文件添加到测试项目的依赖项中。
    • 创建一个本机单元测试项目。
      • 在“文件”菜单上,选择“新建”>“项目”。在“添加新项目”对话框中,将“语言”设置为C ++,然后在搜索框中键入“ test”。然后选择“本机单元测试项目”。
    • 在解决方案资源管理器中,在测试项目的快捷菜单上,选择“属性”。
    • 选择“配置属性>链接器>输入>其他依赖关系”。
    • 选择“编辑”,然后添加.obj或.lib文件的名称,不要使用完整路径名。
    • 选择“配置属性>链接器>常规>其他库目录”。
    • 选择“编辑”,然后添加.obj或.lib文件的目录路径。该路径通常在被测项目的build文件夹中。
    • 选择“配置属性”>“ VC ++目录”>“包含目录”。
    • 选择“编辑”,然后添加要测试的项目的头目录。

在同一项目中添加单元测试

  • 修改产品代码项目属性,以包括单元测试所需的头文件和库文件。
    • 在解决方案资源管理器中,在被测项目的快捷菜单中,选择“属性”,将打开项目“属性”窗口。
    • 选择“配置属性”>“ VC ++目录”。
    • 编辑包含和库目录:

目录 属性
包含目录 $(VCInstallDir)UnitTest\include;$(IncludePath)
图书馆目录 $(VCInstallDir)UnitTest\lib;$(LibraryPath)

  • 添加一个C ++单元测试文件:
    • 在解决方案资源管理器中,在项目的快捷菜单中,选择“添加”>“新建项”>“ C ++单元测试”。

编写单元测试
在每个单元测试代码文件中,为要测试的项目的标题添加#include语句。将测试类和方法添加到单元测试代码文件中。例如:

#include "stdafx.h"
#include "CppUnitTest.h"
#include "MyProjectUnderTest.h"
using namespace Microsoft::VisualStudio::CppUnitTestFramework;
namespace MyTest
{
  TEST_CLASS(MyTests)
  {
  public:
      TEST_METHOD(MyTestMethod)
      {
          Assert::AreEqual(MyProject::Multiply(2,3), 6);
      }
  };
}

运行测试

  • 在“测试”菜单上,选择“ Windows”>“测试资源管理器”。
  • 如果在窗口中看不到所有测试,请在“解决方案资源管理器”中右键单击其节点,然后选择“生成”或“重新生成”,以构建测试项目。
  • 在测试资源管理器中,选择“全部运行”,或选择要运行的特定测试。右键单击测试以获取其他选项,包括在启用断点的调试模式下运行。

推荐文章:

在Visual Studio中编写C / C ++的单元测试


想要购买Visual Studio正版授权,或了解更多产品信息请点击【咨询在线客服】

慧聚IT



标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,尊重他人劳动成果

文章转载自:Microsoft https://docs.microsoft.com/en-us/visualstudio/test/how-to-write-unit-tests-for-cpp-dlls?view=vs-2019

登录 慧都网发表评论


暂无评论...

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
title
title
相关厂商
相关产品
Visual Studio

非常完备的工具和服务,可帮助您为 Microsoft 平台和其他平台创建各种各样的应用程序

在线
客服
咨询
电话
400-700-1020
在线
QQ
购物车 反馈 返回
顶部
在线客服系统
live chat