zoukankan      html  css  js  c++  java
  • 软件工程(2019)第二次作业

    一、 选择开发工具

    我准备使用C++语言开发,而且我的电脑已经安装了Visual Studio 2017的开发工具,开发工具运行后的截图如图所示:


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

    1.建立需测试的项目

    • 新建项目

    • 正常书写头文件.h和.cpp文件,根据示例中的加减乘除代码:
      编写1.cpp文件:
    #include<stdio.h>
    int add(int a, int b)//加
    {
        return a + b;
    }
    int substract(int a, int b)//减
    {
        return a - b;
    }
    int multiply(int a, int b)//乘
    {
        return a * b;
    }
    int divide(int a, int b)//除
    {
        return a / b;
    }
    int main()
    {
    }
    

    代码如图所示:

    *编写1.h文件:* ``` #pragma once int add(int a, int b); int substract(int a, int b); int multiply(int a, int b); int divide(int a, int b); int main(); ``` **代码如图所示:**

    然后生成解决方案,生成成功后进行下一步。


    2.新建单元测试

    • 右击解决方案→添加→新建项目→Visual Studio 2017→测试→本机单元测试项目

    • UnitTest1→右击引用→添加引用→勾选被测项

    3.编写测试代码

    • 修改unittest1.cpp,测试单元核心代码:
    	TEST_CLASS(UnitTest1)
    	{
    	public:
    		
    		TEST_METHOD(TestMethod1)  //加
    		{
    			int a = 20, b = 4;
    			Assert::AreEqual(add(a, b), 24);
    		}
    		TEST_METHOD(TestMethod2)   //减
    		{
    			int a = 20, b = 4;
    			Assert::AreEqual(substract(a, b), 16);
    		}
    		TEST_METHOD(TestMethod3)    //乘
    		{
    			int a = 20, b = 4;
    			Assert::AreEqual(multiply(a, b), 80);
    		}
    		TEST_METHOD(TestMethod4)   //除
    		{
    			int a = 20, b = 4;
    			Assert::AreEqual(divide(a, b), 5);
    		}
    
    	};
    

    代码如图所示:


    4.附加依赖项

    • 右击UnitTest1→属性→链接器→输入→附加依赖项→编辑

    5.运行测试

    • 测试→运行→所有测试

    如图,测试全部都通过。


    三、总结

    通过本次作业,我掌握了在Visual Studio 2017中建立单元测试的方法。在完成过程中,我认为最重要的三点:1.代码一定要编写正确,不要漏掉头文件。2.一定要记得添加添加引用,勾选被测试项。3.是附加依赖项,这一步极其重要,关系到测试能否成功。没有附加依赖项之前,测试代码会出现“无法解析的外部符号...”等错误。而且添加的时候要注意依赖项为被测试类的.obj。同时,在完成作业时我体会到,我们一定要有耐心,遇到错误不能烦躁不能放弃,要学会去解决错误。

  • 相关阅读:
    转:request.getSession(true)和request.getSession(false)的区别
    转:Linux中文显示乱码?如何设置centos显示中文
    Linux Centos 6.5_x86安装Nginx
    Java反射详解
    Java泛型
    泛型的通配符扩展
    文本分类:survey
    CRF++官方文档
    Paper: Bidirectional LSTM-CRF Models for Sequence Tagging
    PCA数学推导及原理(转)
  • 原文地址:https://www.cnblogs.com/wwl5569335/p/10700803.html
Copyright © 2011-2022 走看看