作业2

一、选择开发工具


我常用的语言为CC++,所以选择Microsoft Visual Studio 2017(简称VS2017),因为VS2017是一个功能比较全面的编译软件,编程、调试、包装几乎一应俱全。以下是我已安装的VS2017的编译环境的应用界面。
作业2

二、练习自动单元测试技术


接下来进行单元测试练习。举一个简单例子,代码如下:

#include<stdio.h>
#include<stdlib.h>
int otto(int n)
{
    int n,s=0,i=1;
    scanf("%d",&n);
    do
    {
        s=s+i*(i+1);
        i=i+2;
    }
    while(i<(n+2));
    return s;
}

这是一段12+34+...+n*(n+1)其中n为正奇数的求和代码。接下我将以它为例详细操作一下。
单元测试大致分为创建测试项目添加引用编写测试程序运行测试这几个步骤。

1、创建测试项目

首先我们鼠标右键已有项目上方的解决方案,选择添加选项,点击新建项目一栏,结果如下图所示:
作业2
按照图中选择"Visual C++"-->"测试"-->"本机单元测试项目"即可完成创建测试项目。
作业2

2、添加引用

为了测试程序可以成功调用源程序数据库,需要在测试项目的引用中进行被测试项目的添加,建立依赖关系,如图所示:
作业2
按照图中点击"引用"-->"添加引用"-->"项目"选择被测项目。

3、编写测试程序

点击测试项目源文件里的unittest1.cpp文件
编写测试程序,通过宏 TEST_METHOD包裹的方法都将成为单独的一个测试单元,如图所示:
作业2
测试中主要使用了Assert::AreEqual 来进行执行预期的判断操作,进行比较,若与预期判断不等,则会出现“测试错误”提示。
测试函数如下:

#include "stdafx.h"
#include "CppUnitTest.h"
#include "../lixiaop/test.h"
using namespace Microsoft::VisualStudio::CppUnitTestFramework;

namespace UnitTest1
{       
    TEST_CLASS(UnitTest1)
    {
    public:
        
        TEST_METHOD(TestMethod1)
        {
            Assert::AreEqual(otto(3), 14);// TODO: 在此输入测试代码
        }

    };
}


  • 注意:对于被测项目你需要建立一个头文件用于存放被测试函数,在测试文件中需要应用这个头文件。
    头文件内容如下:
#pragma once
int otto(int n)
{
    int s = 0, i = 1;
    do
    {
        s = s + i * (i + 1);
        i = i + 2;
    } while (i < (n + 2));
    return s;
}


4、运行测试

(1)对于一般函数,点击测试一栏中的运行选项,点击所有测试即可。
测试结果如图所示:
作业2


  • 总结

    对于VS2017版的测试环境,用起来还是较为舒适的,本次的练习于我而言有很大的帮助,使我使用VS2017的测试单元更加的得心应手。
上一篇:WIN10+PCL1.8.1+VS2017环境配置


下一篇:WinForm开发(3)——使用vs2017打包winform安装程序的过程