精华内容
下载资源
问答
  • Visual Studio 2010 运行和定义单元测试 在VS2010中,单元测试的功能很强大,使得建立单元测试和编写单元测试代码,以及管理和运行单元测试都变得简单起来,通过私有访问器可以对私有方法也能进行单元测试,并且...

    Visual Studio 2010 运行和定义单元测试

    VS2010中,单元测试的功能很强大,使得建立单元测试和编写单元测试代码,以及管理和运行单元测试都变得简单起来,通过私有访问器可以对私有方法也能进行单元测试,并且支持数据驱动的单元测试。

    1、建立单元测试项目

    1.1、从被测试代码生成单元测试

    1)实例:创建VC#模式下的控制台应用程序,工程名为CUnitTest

    2)输入简单的加、减、乘、除函数代码,如下图所示

    namespace CUnitTest
    {
        class Program
        {
            public int Add(int a, int b)
            {
                return a + b;
            }
            public int Dec(int a, int b)
            {
                return a - b;
            }
            public int Mul(int a, int b)
            {
                return a * b;
            }
            public int Div(int a, int b)
            {
                return a / b;    
            }
            static void Main(string[] args)
            {
            }
        }
    }
    
    


    3)可按如下步骤建立单元测试

     1)在Add方法体内,单击鼠标右键,在菜单中选择“创建单元测试”,就能把一个类的测试代码的外壳都自动写好。

    (2)在出现的“创建单元测试”界面中,Add方法被自动勾上,表示要为这个方法创建单元测试代码的基本框架,单击确定按钮

    3)点击确定后,在新建测试项目中,输入需要创建的单元测试的新项目的名称,然后单击“创建”按钮,则自动创建一个新的单元测试代码项目。

    4)在“解决档案资源管理器”中可以看到多了一个“AddTest”项目,可以看出“AddTest”项目引用了被测项目的程序集,和单元测试框架Microsoft.VisualStudio.QualityTools.UnitTestFrame,并且自动产生两个C#代码文件AssemblyInfo.csProgramTest.cs

    5ProgramTest.cs的代码如下图所示,从图中可以看到,自动产生了一个“ProgramTest”类,并使用[TestClass()]标识为一个单元测试类,以及一个“AddTest”测试方法,。并用[TestMethod()]标识。

    using CUnitTest;
    using Microsoft.VisualStudio.TestTools.UnitTesting;
    using System;
    namespace AddTest
    {
        
        
        /// <summary>
        ///这是 ProgramTest 的测试类,旨在
        ///包含所有 ProgramTest 单元测试
        ///</summary>
        [TestClass()]
        public class ProgramTest
        {
    
            private TestContext testContextInstance;
    
            /// <summary>
            ///获取或设置测试上下文,上下文提供
            ///有关当前测试运行及其功能的信息。
            ///</summary>
            public TestContext TestContext
            {
                get
                {
                    return testContextInstance;
                }
                set
                {
                    testContextInstance = value;
                }
            }
    
            #region 附加测试特性
            // 
            //编写测试时,还可使用以下特性:
            //
            //使用 ClassInitialize 在运行类中的第一个测试前先运行代码
            //[ClassInitialize()]
            //public static void MyClassInitialize(TestContext testContext)
            //{
            //}
            //
            //使用 ClassCleanup 在运行完类中的所有测试后再运行代码
            //[ClassCleanup()]
            //public static void MyClassCleanup()
            //{
            //}
            //
            //使用 TestInitialize 在运行每个测试前先运行代码
            //[TestInitialize()]
            //public void MyTestInitialize()
            //{
            //}
            //
            //使用 TestCleanup 在运行完每个测试后运行代码
            //[TestCleanup()]
            //public void MyTestCleanup()
            //{
            //}
            //
            #endregion
    
    
            /// <summary>
            ///Add 的测试
            ///</summary>
            [TestMethod()]
            public void AddTest()
            {
                Program target = new Program(); // TODO: 初始化为适当的值
                int a = 0; // TODO: 初始化为适当的值
                int b = 0; // TODO: 初始化为适当的值
                int expected = 0; // TODO: 初始化为适当的值
                int actual;
                actual = target.Add(a, b);
                Assert.AreEqual(expected, actual);
                //Assert.Inconclusive("验证此测试方法的正确性。");
            }
    
            /// <summary>
            ///Dec 的测试
            ///</summary>
            [TestMethod()]
            public void DecTest()
            {
                Program target = new Program(); // TODO: 初始化为适当的值
                int a = 0; // TODO: 初始化为适当的值
                int b = 0; // TODO: 初始化为适当的值
                int expected = 0; // TODO: 初始化为适当的值
                int actual;
                actual = target.Dec(a, b);
                Assert.AreEqual(expected, actual);
                //Assert.Inconclusive("验证此测试方法的正确性。"); //语句是默认添加的,意思是这个方法是Visual Studio自动创建,运行前自删除或注释此句,否则运行结果无法通过。
            }
        }
    }
    


    6ProgramTest.cs代码文件详讲

    [TestMethod()]:说明了以下代码是一个测试用例

    Int a = 0; // TODO: 初始化为适当的值

    int b = 0; // TODO: 初始化为适当的值

    这两句是被测函数的输入参数,需要我们去修改它的值,也就是我们输入测试用例的地方。

    double expected = 0; // TODO:初始化为适当的值

    double actual;

          这两句话浅显易懂,前一句话是定义了期望值和对它进行初始化,后一句话是定义了实际值。默认

    Assert.AreEqual(expected, actual);

    Assert在这里可以理解成断言:在VSTS里做单元测试是基于断言的测试。

    默认代码中Assert.Inconclusive表明这是一个未经验证的单元测试。在实际的程序中可以注释掉。

    展开全文
  • 目标是把通过了单元测试的模块拿来,构造一个在设计中所描述的程序结构,应当避免一次性的集成(除非软件规模很小),而采用增量集成。 自顶向下集成:模块集成的顺序是首先集成主模块,然后按照控制层次结构向下...

    分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net

    1、单元测试:完成最小的软件设计单元(模块)的验证工作,目标是确保模块被正确的编码,使用过程设计描述作为指南,对重要的控制路径进行测试以发现模块内的错误。通常情况下是白盒的,对代码风格和规则、程序设计和结构、业务逻辑等进行静态测试,及早的发现和解决不易显现的错误。

    2、集成测试:通过测试发现与模块接口有关的问题。目标是把通过了单元测试的模块拿来,构造一个在设计中所描述的程序结构,应当避免一次性的集成(除非软件规模很小),而采用增量集成。

    自顶向下集成:模块集成的顺序是首先集成主模块,然后按照控制层次结构向下进行集成,隶属于主模块的模块按照深度优先或广度优先的方式集成到整个结构中去。

    自底向上集成:从原子模块开始来进行构造和测试,因为模块是自底向上集成的,集成时要求所有隶属于某个顶层的模块总是存在的,也不再有使用稳定测试桩的必要。

    3、系统测试:是基于系统整体需求说明书的黑盒类测试,应覆盖系统所有联合的部件。系统测试是针对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出与需求规格不相符合或与之矛盾的地方。系统测试的对象不仅仅包括需要测试的产品系统的软件,还要包含软件所依赖的硬件、外设甚至包括某些数据、某些支持软件及其接口等。因此,必须将系统中的软件与各种依赖的资源结合起来,在系统实际运行环境下来进行测试。

    4、回归测试:回归测试是指在发生修改之后重新测试先前的测试用例以保证修改的正确性。理论上,软件产生新版本,都需要进行回归测试,验证以前发现和修复的错误是否在新软件版本上再次出现。回归测试的目的在于验证以前出现过但已经修复好的缺陷不再重新出现。一般指对某已知修正的缺陷再次围绕它原来出现时的步骤重新测试。

    5、验收测试:验收测试是指系统开发生命周期方法论的一个阶段,这时相关的用户或独立测试人员根据测试计划和结果对系统进行测试和接收。它让系统用户决定是否接收系统。它是一项确定产品是否能够满足合同或用户所规定需求的测试。验收测试包括Alpha测试和Beta测试。

    Alpha测试:是由用户在开发者的场所来进行的,在一个受控的环境中进行。

    Beta测试:由软件的最终用户在一个或多个用户场所来进行的,开发者通常不在现场,用户记录测试中遇到的问题并报告给开发者,开发者对系统进行最后的修改,并开始准备发布最终的软件。

    展开全文
  • 单元测试-理论篇[2]

    2021-03-23 16:13:07
    单元测试-理论篇[2]软件测试单元测试的范畴如果要给单元测试定义一个明确的范畴,指出哪些功能是属于单元测试,这似乎很难。但下面讨论的四个问题,基本上可以说明单元测试的范畴,单元测试所要做的工作。1、它的...
  • //qt单元测试用法,qt测试例子,qt单元测试demo,qt单元测试简单例子,qt单元测试例程,qt单元测试简单例子, qt5单元测试例子,qt5单元测试代码,qt5单元测试工程例子,测试运行ok //首先,用标准的qt测试单元导向,...
  • 单元测试(二)--测试范畴

    千次阅读 2013-03-28 20:53:42
    如果要给单元测试定义一个明确的范畴,指出哪些功能是属于单元测试,这似乎很难。但下面讨论的四个问题,基本上可以说明单元测试的范畴,单元测试所要做的工作。 1、 它的行为和我期望的一致吗?  这是单元测试最...
    如果要给单元测试定义一个明确的范畴,指出哪些功能是属于单元测试,这似乎很难。但下面讨论的四个问题,基本上可以说明单元测试的范畴,单元测试所要做的工作。
    1、 它的行为和我期望的一致吗?
        这是单元测试最根本的目的,我们就是用单元测试的代码来证明它所做的就是我们所期望的。
     
    2、 它的行为一直和我期望的一致吗?
        编写单元测试,如果只测试代码的一条正确路径,让它正确走一遍,并不算是真正的完成。许多开发者说他们只编写一个测试。也就是让所有代码从头到尾跑一次,只测试代码的一条正确执行路径,只要这样走一遍下来没有问题,测试也就算是完成了。例如,土木工程师在设计一座桥梁的时候,必须考虑桥梁的负载、强风的影响、地震、洪水等等。电子工程师要考虑频率漂移、电压尖峰、噪音、甚至这些同时出现时所带来的影响。
        你不能这样来测试一座桥梁:在风和日丽的某一天,仅让一辆车顺利地通过这座桥。显然,这种测试对于桥梁测试来说是远远不够的。类似地,软件开发是一个项复杂的工程,在测试某段代码的行为是否和你的期望一致时,你需要确认:在任何情况下,这段代码是否都和你的期望一致;譬如参数很可疑、硬盘没有剩余空间、缓冲区溢出、网络掉线的时候。
     
    3、 我可以依赖单元测试吗?
        不能依赖的代码是没有多大用处的。既然单元测试是用来保证代码的正确性,那么单元测试也一定要值得依赖,并且清楚地知道这些代码的功能和约束。
     
    4、 单元测试说明我的意图了吗?
        单元测试能够帮我们充分了解代码的用法,从效果上而言,单元测试就像是能执行的文档,说明了在你用各种条件调用代码时,你所能期望这段代码完成的功能。
    展开全文
  • 今天我们来聊下junit(单元测试)。为了后期测试基于spring的单元测试,我们直接新建spring工程。新建之后,我们先讲一般在java项目中怎么去做单元测试。 我们先定义一个实体User在service包中新建一个接口,在接口...
  • iOSUnitTest单元测试

    2021-01-27 17:03:04
    在计算机编程中,单元测试(英语:UnitTesting)又称为模块测试, 是针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作。程序单元是应用的最小可测试部件。在过程化编程中,一个单元就是单个程序、函数...
  • 单元测试详解

    千次阅读 热门讨论 2016-01-10 15:29:02
    引言  在ITOO高校云平台项目中,我们做的是基础模块,为...单元测试定义  Unit Testing,是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语

    引言

           在ITOO高校云平台项目中,我们做的是基础模块,为其他的模块提供基础数据.这就需要我们提供很多的接口给各个模块,当别人调用我们的方法时,为了检验是我们方法的问题还是别人代码的问题,我们采用了单元测试.

    单元测试定义

           Unit Testing,是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。总的来说,单元就是人为规定的最小的被测功能模块。单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。说白了就是切断我们的客户端,在服务端自己测试这个方法的正确性和是否通。

    单元测试前期准备

           单元测试要用到的工具是Nunit, 下载地址:http://www.nunit.org/index.php?p=download 选择后缀名是.msi的文件下载即可。

     


           下载之后进行安装,自定义安装路径,因为后面会进行选择.安装之后可以在所有程序中确定已经安装.具体使用步骤省略。

     

    单元测试前期配置

         1. 打开VS,点击工具——自定义——命令——编辑器上下文菜单|代码窗口

            将创建单元测试下移到运行测试和调试测试中间。

     

            重启VS即可成功。


    单元测试实例

          1.首先,我们先建一个类库,名为UnitTest

     

     

           2.添加引用——浏览刚才Nunit的安装路径,选择nunit.framework.dll,进行引用。

     

     

     

     

           3.我们在程序中写一个加法方法,对其进行单元测试

     

     

          4.写好方法后,首先在这个方法名上右击,看到创建单元测试是灰色的,我们就要添加单元测试项目

     

     

           5.在解决方案出右击添加——新建项——选择单元测试项目

     


            6.如果没有单元测试项目,是这样的,就对刚才写的方法进行保存和运行

     

     

              7、添加了单元测试项目之后要添加单元测试

     

     


            8.右击要测试的方法,选择创建单元测试


     

             9.选择我们需要进行测试的方法或者类

     




     

          10.在生成的测试方法中填写初始值、期望值,设置断点,然后右击该方法进行调试测试。

     

     

            11.运行成功,跳到断点处,我们可以查看实际值和期望值来判断我们的方法通不通。


     

     因为a的初始值是1,b的初始值是2,所以期望值我们设为3,结果真实值也是3,所以证明我们的 方法是通的。

     

     总结

           有的时候别人怎么教你你都学不会,就算当时学会了也还是会很快忘掉,那是因为你还没有用到,等你着急用了,也许这个时候才是你最适合学这个内容的时机,这样会学的更快,更好!学会了单元测试,我们就可以在别人来跟我说,你的方法有问题,我调不通的时候拿出证据给他看,我的方法是没问题的!嘿嘿……吐舌头


    展开全文
  • 单元测试

    万次阅读 2019-10-18 23:35:31
    一、什么是单元测试单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行...
  • 因为此时单元测试和集成测试已经完成,系统测试能够对软件所有功能进行功能测试,能够覆盖系统所有联合的部件,是针对整个产品系统进行的测试,能够验证系统是否满足了需求规格的定义,因此系统测试最重要。
  • tag , 便签,广告: qt单元测试用法,qt测试例子,qt单元测试demo,qt单元测试简单例子,qt单元测试例程,qt单元测试简单例子, qt5单元测试例子,qt5单元测试代码,qt5单元测试工程例子,测试运行ok。 1. 建立工程...
  • Java的单元测试和集成spring单元测试

    千次阅读 2016-08-30 21:04:26
    今天我们来聊下junit(单元测试)。 为了后期测试基于spring的单元测试,我们直接新建spring工程。 新建之后,我们先讲一般在java项目中怎么去做单元测试。 我们先定义一个实体User 在service
  • 单元测试是对软件基本组成单元进行的测试 •单元具有一些基本属性,如:明确的功能、规格定义,明确的与其他部分的接口定义等,可清晰地与同一程序的其他单元划分
  • Java单元测试入门

    2021-01-27 13:09:49
    定义单元测试是对软件或程序的基本(最小)组成单元的测试 对象:方法、类 特点: 只要程序能运行就可以了,写单元测试浪费时间 代码很简单不需要单元测试 我保证不会有什么问题的 测试人员测试一下
  • KeyPathTesting 一个Swift框架,定义了基于KeyPath的语法,用于编写单元测试
  • 单元测试与集成测试

    万次阅读 多人点赞 2019-09-17 08:25:00
    按测试策略和过程,软件测试分为单元测试、集成测试、确认测试和系统测试。 按软件系统工程,测试是软件质量保证的最后的一关。 高质量的程序取决于以下几个方面: 高质量的设计 规范的编码 有效的测试 开发部...
  • 单元测试培训系列

    2021-03-04 10:52:47
    先借用下百度百科的定义单元测试是在软件开发过程中要进行的最低级别的测试活动,在单元测试活动中,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。从以上这句定义我们可以看到,两个提取到到两个...
  • iOS开发——单元测试

    2021-03-23 11:45:04
    维基百科对单元测试定义如下:在计算机编程中,单元测试(英语:UnitTesting)又称为模块测试,是针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作。程序单元是  前言  维基百科对单元测试定义如下:...
  • 软件单元测试计划 包括:介绍 目的 定义和缩写 参考资料 测试内容 单元测试策略 测试方法 测试工具 测试模块 测试活动计划进度 准入/准出原则 测试用例 输出文档 附录 缺陷状态定义 缺陷...
  • IntelliJ IDEA单元测试入门

    万次阅读 多人点赞 2016-08-09 20:10:17
    参考文章地址地址:JUnit4单元测试入门教程 IDEA单元测试及代码覆盖率 IDEA添加jar包的三种方式 本文按以下顺序讲解JUnit4的使用 下载jar包单元测试初体验自动生成测试类执行顺序@Test的属性
  • 企业管理游戏软件测试中的单体测试,单元测试,测试用例测试用例(TestCase)是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。测试用例(TestCase)...
  • 单元测试规范

    2014-06-30 16:46:17
    软件单元测试规范,首先明确下“单元”的定义,单元指软件设计说明中一个可独立测试的元素,是程序中一个逻辑上独立的部分,它不能再分解为其他软件成分。在实践中,指软件源代码中单个的函数,源文件或类。 单元...
  • 单元测试 文档 模板 软件系统测试 测试内容定义、测试用力定义,测试结果定义,bug产出统计等等
  • 本文内容涉及单元测试,需要读者具有单元测试的基础知识,如果没有,请移步至我之前的博客文章: 【单元测试】开篇 【单元测试】Test Double简介 2. CMocka概述 官网:https://cmocka.org/ CMocka 是一款...
  • (1)定义单元测试(又称为模块测试)是针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作。程序单元是应用的最小可测试部件。在过程化编程中,一个单元就是单个程序、函数、过程等;对于面向对象编程...
  • 文章目录为什么不想写单元测试为什么要写单元测试什么时候写单元测试怎么写单元测试 为什么不想写单元测试 单元测试太浪费时间了。 随着系统的复杂度增加,你的一次改动可能引发出5个bug,或者你的bug被发现的时间...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 288,430
精华内容 115,372
关键字:

单元测试定义