软件工程第二次作业-单元测试

本文详细介绍使用Visual Studio进行单元测试的方法,包括开发环境搭建、测试代码编写及运行测试,以C语言加减乘除函数为案例,展示如何进行有效的单元测试。

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

1.选择开发工具
  Visual Studio (简称VS)是微软公司旗下最重要的软件集成开发工具产品。是目前最流行的 Windows 平台应用程序开发环境,也是无数人学习编程的入门软件之一。Visual Studio 可以用来创建 Windows 平台下的 Windows 应用程序和网络应用程序,也可以用来创建网络服务、智能设备应用程序和 Office 插件,目前还可开发安卓平台应用及IOS平台应用。
  我比较熟悉c/c++语言,所以采用vs作为开发环境,软件界面如下图:

1645953-20190411220307951-1231053178.png

2.练习自动单元测试

  • 建立需要测试的项目

1645953-20190411220951286-195783371.png

  • 写一个源文件

//.cpp 
#include<stdio.h>
int getadd(int a, int b)
{
    return a + b;
}
int getsub(int a, int b)
{
    return a - b;
}
int getmul(int a, int b)
{
    return a * b;
}
int getdiv(int a, int b)
{
    return a / b;
}
int main()
{
    int a;
    int b;
    scanf_s("%d%b", &a, &b);
    printf("%d", getadd(a, b));
    return 0;
}

1645953-20190411221356892-745365198.png

  • 写头文件

//头文件
#pragma once
int getadd(int a, int b)
{
    return a + b;
}
int getsub(int a, int b)
{
    return a - b;
}
int getmul(int a, int b)
{
    return a * b;
}
int getdiv(int a, int b)
{
    return a / b;
}

1645953-20190411221416648-1168989261.png

  • 编写单元测试

    • 右击解决方案 -> 添加 -> 新建项目

      ###Visual C++ -> 测试 -> 本机单元测试项目###
      1645953-20190411223037352-1337023074.png
    • 点击【确定】后出现以下界面

      1645953-20190411223157945-701895173.png
  • 添加【引用】

    • UnitTest1 -> 右击引用 -> 添加引用 -> 勾选被测项目

      1645953-20190411223308318-653734196.png
  • 编写测试代码

    • 修改unittest1.cpp文件

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

namespace UnitTest1
{       
    TEST_CLASS(UnitTest1)
    {
    public:
        
        TEST_METHOD(TestMethod1)  //加法测试
        {
            // TODO: 在此输入测试代码
            int x = 6, y = 3;
            Assert::AreEqual(getadd(x, y), 9);
        }
        TEST_METHOD(TestMethod2)   //除法测试
        {
            // TODO: 在此输入测试代码
            int x = 6, y = 3;
            Assert::AreEqual(getdiv(x, y), 2);
        }
        TEST_METHOD(TestMethod3)   //减法测试
        {
            // TODO: 在此输入测试代码
            int x = 6, y = 3;
            Assert::AreEqual(getsub(x, y), 3);
        }
        TEST_METHOD(TestMethod4)    //乘法测试
        {
            // TODO: 在此输入测试代码
            int x = 6, y = 3;
            Assert::AreEqual(getmul(x, y), 18);
        }

    };
}

1645953-20190411223515413-1089879612.png

  • 测试

    • 测试 -> 运行 -> 所有测试

      1645953-20190411223609652-1480528793.png
    • 运行结果


      1645953-20190411232723546-113574514.png
组名称: UnitTest1
分组依据: Hierarchy
组全名: UnitTest1
持续时间: 0:00:00.0012161
0 个测试失败
0 个测试跳过
4 个测试通过

结果1 名称: TestMethod1
结果1 结果: 已通过
结果1 持续时间:   0:00:00.0009404
结果1 StackTrace:
结果1 消息:
结果1 StandardOutput:
结果1 StandardError:

结果2 名称: TestMethod2
结果2 结果: 已通过
结果2 持续时间:   0:00:00.0001058
结果2 StackTrace:
结果2 消息:
结果2 StandardOutput:
结果2 StandardError:

结果3 名称: TestMethod3
结果3 结果: 已通过
结果3 持续时间:   0:00:00.0000866
结果3 StackTrace:
结果3 消息:
结果3 StandardOutput:
结果3 StandardError:

结果4 名称: TestMethod4
结果4 结果: 已通过
结果4 持续时间:   0:00:00.0000833
结果4 StackTrace:
结果4 消息:
结果4 StandardOutput:
结果4 StandardError:

总结

  在这次的单元测试练习中,我采用了c语言非常简单的加减乘除测试案例,虽然案例简单,但是我基本熟悉了单元测试的过程,并且成功的实现了测试案例。

转载于:https://www.cnblogs.com/yachaohh/p/10692680.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值