软件工程第二次作业

一.选择开发工具

虽然团队经过商讨之后决定团队作业使用python,但是本人还在初学阶段不太熟练,故这次使用C++进行作业,由于之前装过Visual Studio 2017,故直接放开发工具运行后截图。截图如下:

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

新建一个C++的空项目,在新建项目下面对头文件和源文件添加新项目,分别编写cpp和头文件,最终源文件中的代码如下:

 #include<iostream>
#include<math.h>
#include"test.h"
using namespace std;
int Cal::add(int x, int y)//返回两个变量的和
{
	return x + y;
}
int Cal::sub(int x, int y)//返回两个变量的差
{
	return x - y;
}
int Cal::mul(int x, int y)//返回两个变量的积
{
	return x*y;
}
int Cal::div(int x, int y)//返回两个变量的商
{
	return  x / y;
}
int main()
{
	return 0;
}

最终头文件代码如下:

>class Cal {
public:
	int add(int x, int y);
	int sub(int x, int y);
	int mul(int x, int y);
	int div(int x, int y);
};

确定代码无误后,右键点击“解决方案”->"添加"->“新建项目”,如下图所示:

紧接着在弹出的页面选择“本机单元测试项目”

此时右侧的状态栏出现了单元测试的项目,“UnitTest2”

右键选中引用,点击“添加引用”,勾选需要引用的项目,也就是需要测试的项目

接下来开始编写测试程序,如下图所示

#include "stdafx.h"
#include"../sum1/test.h"
#include "CppUnitTest.h"

using namespace Microsoft::VisualStudio::CppUnitTestFramework;

namespace UnitTest2
{		
	TEST_CLASS(UnitTest1)
	{
	public:
		
		TEST_METHOD(TestMethod1)
		{
			// TODO: 在此输入测试代码
			Cal a;
			int x = 6, y =3 ;
			Assert::AreEqual(9, a.add(x, y));
			Assert::AreEqual(3, a.sub(x, y));
			Assert::AreEqual(18, a.mul(x, y));
			Assert::AreEqual(2, a.div(x, y));
		}

	};
}

右键测试项目,然后选择属性,选择“链接器”->"输入"->"选择依赖项",输入的是需要测试项目的obj文件的路径

接下来运行测试,ctrl+A+R

运行成功!!!

Assert::AreEqual函数是确定是否两个数相等的操作,如果两个数不相等,那么将不会通过测试,但是运行可以成功,如下图所示6+3=1,错误,不满足的话就不能通过测试

posted @ 2019-04-12 19:16  Mr.旭  阅读(213)  评论(0编辑  收藏  举报