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

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

2.练习自动单元测试

  • 建立需要测试的项目##


  • 写一个源文件##

//.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;
}

  • 写头文件##

//头文件
#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;
}

  • 编写单元测试

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

      Visual C++ -> 测试 -> 本机单元测试项目###


+ ###点击【确定】后出现以下界面###

  • 添加【引用】##

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

  • 编写测试代码##

    • 修改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);
		}

	};
}

  • 测试##

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


+ ###运行结果###


组名称: 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