visual studio2015单元测试

2024-09-05 02:18

本文主要是介绍visual studio2015单元测试,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

尝试引用了包含待测了待测程序的项目,但是不知道该如何调用待测代码,所以只能通过引用生成的库文件

进行单元测试的步骤:

一、创建控制台静态库项目,将要测试的代码编译为库文件

二、创建单元测试项目,引用创建的库文件,并在stdafx.h中包含之前库文件的头文件:

1)直接include头文件的绝对路径

2)将头文件复制到单元测试项目的根目录下,并直接在stdafx.h头文件中include头文件

三、将要测试的代码按照函数划分,分别写入不同的TestMethod中。在测试的时候,可以自己在单元测试项目中新建几个cpp文件,每个文件编写一个驱动小程序来调用被测的函数。然后再要测试结果的地方加上断言:

单元测试的基本方法是调用被测代码的函数,输入函数的参数值,获取返回结果,然后与预期测试结果进行比较,如果相等则认为测试通过,否则认为测试不通过。1、Assert类的使用
Assert.Inconclusive()    表示一个未验证的测试;
Assert.AreEqual()         测试指定的值是否相等,如果相等,则测试通过;
AreSame()            用于验证指定的两个对象变量是指向相同的对象,否则认为是错误
AreNotSame()        用于验证指定的两个对象变量是指向不同的对象,否则认为是错误
Assert.IsTrue()              测试指定的条件是否为True,如果为True,则测试通过;
Assert.IsFalse()             测试指定的条件是否为False,如果为False,则测试通过;
Assert.IsNull()               测试指定的对象是否为空引用,如果为空,则测试通过;
Assert.IsNotNull()          测试指定的对象是否为非空,如果不为空,则测试通过;2、CollectionAssert类的使用
用于验证对象集合是否满足条件
StringAssert类的使用
用于比较字符串。
StringAssert.Contains
StringAssert.Matches
StringAssert.tartWith

1、      先创建一个空白解决方案(文件 —> 新建 —> 项目 —> 已安装的模版 —> 其他项目类型 —>Visual Studio 解决方案 --> 空白解决方案)命名为 TestUnit 

2、      在新创建的解决方案( TestUnit )鼠标右键,选择添加 —> 新建项目 —> 控制台应用程序。

使用 Assert 类

UnitTestAssertException

编写新的 Assert 异常类时使该类从基类 UnitTestAssertException 进行继承,可更方便地将异常标识为断言失败而非从测试或产品代码引发的意外异常。

ExpectedExceptionAttribute

如果希望开发代码中的某方法引发异常,又想用测试方法来验证是否真的在该方法中引发了异常,则请用 ExpectedExceptionAttribute 特性来修饰测试方法。

使用 Assert.AreEqual 重载不安全类型

Assert.AreEqual 方法具有许多重载,可对特定数据类型进行比较。 但是,Assert.AreEqual 方法没有面向不安全类型(如指针数据类型)的重载。

为了说明此问题,请创建一个包含以下类的 C# 控制台应用程序:

unsafe public class CUnsafeTest
{
  private int* m_pX = null;
  unsafe public void VoidPtr(void* voidPtr)
  {
  }
  unsafe public int* ReturnPointer(float* fPtr, TestThis* pTestThis)
  {
    int x = 5;
    return &x;
  }
}

现在为 CunsafeTest 类生成测试。 您将看到生成与下面的示例类似的代码:

TestMethod()

public void ReturnPointerTest()
{
  unsafe
  {
    CodeGen.BVT.Unsafe.CUnsafeTest target;
    target = new CodeGen.BVT.Unsafe.CUnsafeTest();
    //  TODO: Initialize to an appropriate value
    System.Single* fPtr = null;
    //  TODO: Initialize to an appropriate value
    TestThis* pTestThis = null;
    //  TODO: Initialize to an appropriate value
    System.Int32* expected = null;
    System.Int32* actual;
    actual = target.ReturnPointer(fPtr, pTestThis);
    Assert.AreEqual(actual, expected);
      // On the preceding line, no overload is available. 
  }
}

这篇关于visual studio2015单元测试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1137687

相关文章

如何在Visual Studio中调试.NET源码

今天偶然在看别人代码时,发现在他的代码里使用了Any判断List<T>是否为空。 我一般的做法是先判断是否为null,再判断Count。 看了一下Count的源码如下: 1 [__DynamicallyInvokable]2 public int Count3 {4 [__DynamicallyInvokable]5 get

springboot+maven搭建的项目,集成单元测试

springboot+maven搭建的项目,集成单元测试 1.在pom.xml文件中引入单元测试的依赖包 <!--单元测试依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></depen

PowerMock 单元测试总结与常见坑解决方案

PowerMock 单元测试总结与常见坑解决方案 官方文档: PowerMock GitHub PowerMock 在单元测试中能够帮助我们解决静态类、final 方法、私有方法等无法轻易 mock 的问题。下面是我在实际使用 PowerMock 时踩过的一些坑,并结合 PowerMock 的一些方法进行总结。 基本依赖和设置 在 Maven 中添加 PowerMock 依赖。在测试

【Visual Studio 报错】未加载 wntdll.pdb(一种可行的解决办法)

调试程序时,会出现下面这个报错 分析原因: 出现未加载 wntdll.pdb 报错大概率是你的指针使用错误 ,比如使用野指针、越界访问、或者堆区空间释放方式错误等。 这里以 堆区空间释放方式错误 为例子 1、堆区开辟的数组空间使用 delete 释放 // 堆区开辟的数组空间使用 delete 释放int* p = new int[10];delete p; 正

查看Excel 中的 Visual Basic 代码,要先设置excel选项

1. excel VB的简单介绍 百度安全验证 2.excel选项设置 excel表格中在选项->自定义功能区域,选择开发工具,visual baisc/查看代码,即可看到代码。 3.excel已经设置,可以直接查看

[VC] Visual Studio中读写权限冲突

前置场景: 编译没有报错,但是运行提示 内存异常: 情景1: 如下代码运行异常,提示引发了异常:写入权限冲突。*** 是 0xFFFFF..... char* str = (char*)malloc(10);str[0] = 0x30;  解决方案:要包含头文件<stdlib.h>  情景2: 在FileA文件调用FileB文件的函数,但是在FileA中却没有声明该B函数的原型

解决Visual C++ 中相互包含头文件的问题

在编MFC应用程序时,经常会遇到头文件相互包含的问题,很是苦恼,于是便求助于强大的CSDN,得到如下答案:   方法一:利用友元类   我一共有两个类,由于要在两个类的头文件里互相应用对方,所以,在每一个类的头文件里面现包含另一个类的头文件,然后在该类的定义中声明另一个类为友元类。如下:    #include "B.h"      class CA: public CDialog

如何简单而优雅地升级Visual NMP中的PHP版本

需求:自己想测试下不同版本的PHP性能,就想升级下 Visual 这个集成环境中PHP的版本 网上: 升级PHP到5.6.11  1、下载新的nts版的PHP并解压缩到bin\PHP下,保留原文件夹的名称; 2、将旧版PHP文件夹下的PHP.ini复制到新版的PHP文件夹下;修改复制的PHP.ini,将旧版PHP文件夹信息替换成新版PHP文件夹信息; 3、下载php_xdebug-2.3

应用Visual Studio Profiler分析CPU使用情况

使用Visual Studio Profiler分析CPU使用情况‌的步骤如下: 1.‌启动CPU分析:‌ 在Visual Studio中打开你要分析的项目。 在菜单栏中选择Debug > Performance Profiler,或者使用快捷键Alt + F2。 在性能分析工具窗口中,选择CPU Usage选项,这将帮助你分析应用程序的CPU使用情况。 2.‌运行CPU

已解决:Visual studio2022突然只能打字不能使用回车键、退格键

本问题已得到解决,请看以下小结: 关于《VS2022部分按键失灵》的解决方案 记录备注报错时间2024年报错版本VS2022报错复现写代码,点击删除键失灵了报错描述点击关闭提示如下: Microsoft visual studio 已检测到某个操作正在阻止用户输入。这可能是由活动模式对话框或需要阻止用户交互的任务所致。是否仍要关闭?报错截图-报错原因不详解决步骤 1.VS2022搜索键盘,点击