软件工程(2019)第二次作业

软件工程(2019)第二次作业



(1)选择开发工具Visual Studio 2017

  由于之前并没有接触过Java语言(感觉自己好low),所以只能选择Visual Studio 2017作为工具开发。并且在之前学习C++语言时已经安装过Visual Studio 2017,所以截取软件运行界面如下图:

图1.1

(2)单元测试练习

1. 建立一个新工程

图1.2

2. 源文件、头文件、单元测试代码(一个超简单的程序)

  • 源文件
#include<stdio.h>
#include<iostream>
using namespace std;
int MAX(int x, int y)
{
	int z;
	if (x >= y)
		z = x;
	else
		z = y;
	return z;
}
int MIN(int x, int y)
{
	int z;
	if (x >= y)
		z = y;
	else
		z = x;
	return z;
}
int main()
{
	int a, b;
	int max, min;
	cin >> a >> b;
	max = MAX(a, b);
	min = MIN(a, b);
	cout << max << " " << min;
	system("pause");
	return 0;
}  
  • 头文件
#pragma once
int MAX(int x, int y)
{
	int z;
	if (x >= y)
		z = x;
	else
		z = y;
	return z;
}
int MIN(int x, int y)
{
	int z;
	if (x >= y)
		z = y;
	else
		z = x;
	return z;
}
  • 单元测试

  在新建的测试项目里,先右键单击解决方案,可以添加一个新建项目,在类型里选择【单元测试】,新建了一个名为 UnitTest2的单元测试项目。

图1.3

  点击本机单元测试项目之后出现下图

图1.4

  在项目创建成功后,为单元测试项目UnitTest 2增加对原项目的引用,以实现调用原项目函数接口的功能。UnitTest2 -> 右击引用 -> 添加引用 -> 勾选被测项目

图1.5

  下面就是写出的单元测试代码,注意,一定要将自己写的头文件写进去。 测试中主要使用了 Assert::AreEqual(确定是否两个数相等的操作) 来进行执行预期的判断操作。

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

namespace UnitTest2
{		
	TEST_CLASS(UnitTest1)
	{
	public:
		
		TEST_METHOD(TestMethod1)//最大值测试
		{
			// TODO: 在此输入测试代码
			int x, y;
			x = 9;
			y = 5;
			Assert::AreEqual(9, MAX(x, y));
		}
		TEST_METHOD(TestMethod2)//最小值测试
		{
			// TODO: 在此输入测试代码
			int x, y;
			x = 9;
			y = 5;
			Assert::AreEqual(5, MIN(x, y));
		}

	};
}

3. 测试

  • 测试时找到菜单栏里的“测试”,运行所有测试,结果如图所示:
图1.6
  • 单元测试运行完毕后,运行结果弹出,结果如图所示:
图1.7

4. 最后

  最后非常感谢写这两篇文章的作者,文章1,文章2,为我练习这次单元测试提供了很大的帮助。

posted @ 2019-04-12 15:03  蒋斯嘉  阅读(238)  评论(1编辑  收藏  举报