zoukankan      html  css  js  c++  java
  • 软件工程第二次作业-单元测试

    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语言非常简单的加减乘除测试案例,虽然案例简单,但是我基本熟悉了单元测试的过程,并且成功的实现了测试案例。

  • 相关阅读:
    模板--后缀自动机
    十二省NOI“省选”联考模测(第二场)A抽卡大赛
    BZOJ 1800: [Ahoi2009]fly 飞行棋
    BZOJ 1208: [HNOI2004]宠物收养所
    BZOJ 1876: [SDOI2009]SuperGCD
    BZOJ 1013: [JSOI2008]球形空间产生器sphere
    BZOJ 1011: [HNOI2008]遥远的行星
    BZOJ 1010: [HNOI2008]玩具装箱toy
    BZOJ 1008: [HNOI2008]越狱
    BZOJ 1007: [HNOI2008]水平可见直线
  • 原文地址:https://www.cnblogs.com/yachaohh/p/10692680.html
Copyright © 2011-2022 走看看