精华内容
下载资源
问答
  • VS2017创建单元测试基本步骤

    万次阅读 2019-04-23 19:45:35
    1、新建一个VS项目: 备注: 本例中创建的是win32 的控制台工程 创建工程时,推荐在属性设置中,c/c++ ——>...3、在测试项目上右键添加引用,选择刚才构建的工程 4、在源工程上右键,选择属性--...

    1、新建一个VS项目:

    备注:

    • 本例中创建的是win32 的控制台工程
    • 创建工程时,推荐在属性设置中,c/c++ ——>代码生成配置为下图:

    2、新项目调试通过之后,右键解决方案,选择:新建项目,添加--->测试项目

                                   

    3、在测试项目上右键添加引用,选择刚才构建的工程

    4、在源工程上右键,选择属性--将属性的默认值修改为.lib

     

     

    最后,在生成的测试文件app总的TEST_METHOD 函数体内添加测试代码,可在测试资源管理器中进行调试

    5、点生成之后,点击测试

    6、运行所有测试

     

     

    7、此时可以运行测试用例,并且调试了。

    展开全文
  • 单元测试实施步骤

    千次阅读 2015-02-09 09:20:20
    1、编译 2、静态分析器检查 3、代码评审 4、动态测试 驱动模块(driver) 桩模块(stub) 摘自:《软件工程教学视频21讲》(上海交通大学,郭斌老师)。

    1、编译

    2、静态分析器检查

    3、代码评审

    4、动态测试

    驱动模块(driver)

    桩模块(stub)



    摘自:《软件工程教学视频21讲》(上海交通大学,郭斌老师)。

    展开全文
  • 单元测试基本方法、步骤、过程,测试接口应该考虑的因素等。
  • 单元测试基本概念

    千次阅读 2012-03-27 10:45:44
    单元测试基本概念  被测系统:SUT(System Under Test)  被测系统(System under test,SUT)表示正在被测试的系统,目的是测试系统能否正确操作。这一词语常用于软件测试中。软件系统测试的一个特例是对应用...

                                                 单元测试基本概念

            被测系统:SUT(System Under Test)

            被测系统(System under test,SUT)表示正在被测试的系统,目的是测试系统能否正确操作。这一词语常用于软件测试中。软件系统测试的一个特例是对应用软件的测试,称为被测应用程序(application under test,AUT)。
            SUT也表明软件已经到了成熟期,因为系统测试在测试周期中是集成测试的后一阶段。

            测试替身:Test Double

            在单元测试时,使用Test Double减少对被测对象的依赖,使得测试更加单一。同时,让测试案例执行的时间更短,运行更加稳定,同时能对SUT内部的输入输出进行验证,让测试更加彻底深入。但是,Test Double也不是万能的,Test Double不能被过度使用,因为实际交付的产品是使用实际对象的,过度使用Test Double会让测试变得越来越脱离实际。
            要理解测试替身,需要了解一下Dummy Objects、Test Stub、Test Spy、Fake Object这几个概念,下面我们对这些概念分别进行说明。

            Dummy Objects

            Dummy Objects泛指在测试中必须传入的对象,而传入的这些对象实际上并不会产生任何作用,仅仅是为了能够调用被测对象而必须传入的一个东西。

            Test Stub

            测试桩是用来接受SUT内部的间接输入(indirect inputs),并返回特定的值给SUT。可以理解Test Stub是在SUT内部打的一个桩,可以按照我们的要求返回特定的内容给SUT,Test Stub的交互完全在SUT内部,因此,它不会返回内容给测试案例,也不会对SUT内部的输入进行验证。

            Test Spy

            Test Spy像一个间谍,安插在了SUT内部,专门负责将SUT内部的间接输出(indirect outputs)传到外部。它的特点是将内部的间接输出返回给测试案例,由测试案例进行验证,Test Spy只负责获取内部情报,并把情报发出去,不负责验证情报的正确性。

            Mock Object

            Mock Object和Test Spy有类似的地方,它也是安插在SUT内部,获取到SUT内部的间接输出(indirect outputs),不同的是,Mock Object还负责对情报(intelligence)进行验证,总部(外部的测试案例)信任Mock Object的验证结果。

            Fake Object

            经常,我们会把Fake Object和Test Stub搞混,因为它们都和外部没有交互,对内部的输入输出也不进行验证。不同的是,Fake Object并不关注SUT内部的间接输入(indirect inputs)或间接输出(indirect outputs),它仅仅是用来替代一个实际的对象,并且拥有几乎和实际对象一样的功能,保证SUT能够正常工作。实际对象过分依赖外部环境,Fake Object可以减少这样的依赖。

            测试夹具:Test Fixture

            所谓测试夹具(Fixture),就是测试运行程序(test runner)会在测试方法之前自动初始化、回收资源的工作。JUnit4之前是通过setUp、TearDown方法完成。在JUnit4中,仍然可以在每个测试方法运行之前初始化字段和配置环境,当然也是通过注解完成。在JUnit4中,通过@Befroe替代setUp方法;@After替代tearDown方法。在一个测试类中,甚至可以使用多个@Before来注解多个方法,这些方法都是在每个测试之前运行。说明一点,@Before是在每个测试方法运行前均初始化一次,同理@Ater是在每个测试方法运行完毕后均执行一次。也就是说,经这两个注解的初始化和注销,可以保证各个测试之间的独立性而互不干扰,它的缺点是效率低。另外,不需要在超类中显式调用初始化和清除方法,只要它们不被覆盖,测试运行程序将根据需要自动调用这些方法。超类中的@Before方法在子类的@Before方法之前调用(与构造函数调用顺序一致),@After方法是子类在超类之前运行。
            一个测试用例可以包含若干个打上@Test注解的测试方法,测试用例测试一个或多个类API接口的正确性,当然在调用类API时,需要事先创建这个类的对象及一些关联的对象,这组对象就称为测试夹具(Fixture),相当于测试用例的“工作对象”。
            前面讲过,一个测试用例类可以包含多个打上@Test注解的测试方法,在运行时,每个测试方法都对应一个测试用例类的实例。当然,用户可以在具体的测试方法里声明并实例化业务类的实例,在测试完成后销毁它们。但是,这么一来就要在每个测试方法中都重复这些代码,因为TestCase实例依照以下步骤运行。
            创建测试用例的实例。
            使用注解@Before注解修饰用于初始化夹具的方法。
            使用注解@After注解修饰用于注销夹具的方法。
            保证这两种方法都使用 public void 修饰,而且不能带有任何参数。
            TestCase实例运行过程如图16-1所示。
             
            图16-1  方法级别夹具执行示意图
            之所以每个测试方法都需要按以上流程运行,是为了防止测试方法相互之间的影响,因为在同一个测试用例类中不同测试方法可能会使用到相同的测试夹具,前一个测试方法对测试夹具的更改会影响后一个测试方法的现场。而通过如上的运行步骤后,因为每个测试方法运行前都重建运行环境,所以测试方法相互之间就不会有影响了。
            可是,这种夹具设置方式还是引来了批评,因为它效率低下,特别是在设置 Fixture 非常耗时的情况下(例如设置数据库链接)。而且对于不会发生变化的测试环境或者测试数据来说,是不会影响到测试方法的执行结果的,也就没有必要针对每一个测试方法重新设置一次夹具。因此在 JUnit 4 中引入了类级别的夹具设置方法,编写规范说明如下。
            创建测试用例的实例。
            使用注解BeforeClass 修饰用于初始化夹具的方法。 
            使用注解AfterClass 修饰用于注销夹具的方法。
            保证这两种方法都使用 public static void 修饰,而且不能带有任何参数。

            类级别的夹具仅会在测试类中所有测试方法执行之前执行初始化,并在全部测试方法测试完毕之后执行注销方法,如图16-2所示。

            

            图16-2  类级别夹具执行示意图

            测试用例:Test Case

            有了测试夹具,就可以开始编写测试用例的测试方法了。当然也可以不需要测试夹具而直接编写测试用例方法。
            在JUnit 3中,测试方法都必须以test为前缀,且必须是public void的,JUnit 4之后,就没有这个限制,只要在每个测试方法标注@Test注解,方法签名可以是任意取名。
            可以在一个测试用例中添加多个测试方法,运行器为每个方法生成一个测试用例实例并分别运行。

            测试套件:Test Suite

            如果每次只能运行一个测试用例,那么又陷入了传统测试(使用main()方法进行测试)的窘境:手工去运行一个个测试用例,这是非常烦琐和低效的,测试套件专门为解决这一问题而来。它通过TestSuite对象将多个测试用例组装成一个测试套件,则测试套件批量运行。需要特别指出的是,可以把一个测试套件整个添加到另一个测试套件中,就像小筐装进大筐里变成一个筐一样。
            JUnit4中最显著的特性是没有套件(套件机制用于将测试从逻辑上分组并将这这些测试作为一个单元测试来运行)。为了替代老版本的套件测试,套件被两个新注解代替:@RunWith、@SuteClasses。通过@RunWith指定一个特殊的运行器,即Suite.class套件运行器,并通过@SuiteClasses注解,将需要进行测试的类列表作为参数传入。
            创建步骤说明如下。
            创建一个空类作为测试套件的入口(这个空类必须使用public修饰符,而且存在无参构造函数)。
            将@RunWith、@SuiteClasses注释修饰这个空类。
            把Suite.class作为参数传入@RunWith注释,以提示JUnit将此类指定为运行器。
            将需要测试的类组成数组作为@SuiteClasses的参数。

            断言:Assertions

            断言(assertion)是测试框架里面的若干个方法,用来判断某个语句的结果是否为真或判断是否与预期相符。比如assertTrue这一方法就是用来判定一条语句或一个表达式的结果是否为真,如果条件为假,那么该断言就会执行失败。
            在JUnit 4中一个测试类并不继承自TestCase(在JUnit 3.8中,这个类中定义了assertEquals()方法),所以你必须使用前缀语法(举例来说,Assert.assertEquals())或者静态地导入Assert类。这样我们就可以完全像以前一样使用assertEquals方法。
            由于JDK 5.0自动装箱机制的出现,原先的12个assertEquals方法全部去掉了。例如,原先JUnit 3.8中的assertEquals(long,long)方法在JUnit 4中要使用assertEquals(Object,Object),对于assertEquals(byte,byte)、assertEquals(int,int)等也是这样。
            在JUnit 4中,新集成了一个assert关键字。你可以像使用assertEquals方法一样来使用它,因为它们都抛出相同的异常(java.lang.AssertionError)。JUnit 3.8的assertEquals将抛出一个junit.framework.AssertionFailedError。注意,当使用assert时,你必须指定Java的"-ea"参数,否则断言将被忽略。
     

            ——本段文字节选自《Spring 3.x 企业应用开发实战》一书

    图书详细信息:http://blog.csdn.net/broadview2006/article/details/7326175


    展开全文
  • Android Studio单元测试基本流程记录

    千次阅读 2017-06-30 00:21:51
    Android Studio单元测试基本流程记录步骤1. 创建项目创建一个Android Project项目,切换至Android目录结构,打开java目录,可以看到2个名字一样的包,如下图示,其中一个包名后跟着“(androidTest)”,这个包...

    Android Studio单元测试基本流程记录


    步骤

    1. 创建项目

    创建一个Android Project项目,切换至Android目录结构,打开java目录,可以看到有2个名字一样的包,如下图示,其中有一个包名后跟着“(androidTest)”,这个包就是我们创建单元测试类的路径。

    这里写图片描述


    切换至Project目录结构,其中src-androidTest-java-com.tdtech.wapp为测试类目录,src-main-java-com.tdtech.wapp为工程代码目录,如下图示:

    这里写图片描述

    2. 创建测试类

    在测试类目录下创建测试类,命名一般以Test开头(非必要),后面跟你要测试的功能名称,这里,我们测试运维的接口,命名为TestMaintain,继承InstrumentationTestCase。

    3. 创建测试方法

    创建好测试类后,实现setUp()方法,在运行单元测试时,首先会执行这个方法,可以做一些初始化操作,接着创建功能测试方法,一定要以test开头,例如:publc void testAreaInfo(){},在这个方法里就可以编写功能测试的代码,方法最后一定要写上能保证功能正确执行了的判断,例如:assertEquals(1, 2),这个方法可以判断前后两个object是否相等,这里用了数字1和2,自然是不相等的,执行单元测试返回的测试结果是失败。

    4. 运行单元测试

    写完测试方法后就可以运行了,最简单的方法是右键测试类或测试方法,选择run来运行,会进入图示界面:

    这里写图片描述

    如果测试方法测试通过,界面显示如图示:

    这里写图片描述

    左边会列出已测试的测试类,右边显示详细信息,右上角为进度条,全绿表示全部通过,有一个测试类没通过时,就会如下图所示,图片右边部分可以找到错误信息,更详细的信息可以去logcat中查找。

    这里写图片描述

    前面说到最简单的运行方法,这里提一下自定义测试运行方法,点击菜单栏run-edit configurations,如图示:

    这里写图片描述

    在弹出来的界面中点击左上角的+号,选择Android Tests

    这里写图片描述

    进去后,Name:可以自己命名,Module:选择测试的工程,Test:选择测试所在目录或者类,方法,选择第一个会搜寻所有测试方法,选择其他需要在下方选择测试类的路径。
    Specific instrumentation runner(optional):这里选择测试方法,这里我们选择android.test.InstrumentationTestRunner,点击apply,OK完成配置。

    这里写图片描述

    完成后,在需要运行时,选择自己创建的测试配置,点击旁边绿色三角run按钮即可

    这里写图片描述

    5. 打印测试结果

    如果觉得这样看不够具体直观,可以把测试结果打印出来,点击测试界面左上角这个按钮

    这里写图片描述


    弹出如图示选择框:

    这里写图片描述

    可以输出HTML,XML,自定义XSL模板,选择好保存路径,点击OK,这里我们输出一个HTML格式测试结果,在浏览器中打开,如图示,显示了通过及未通过的测试方法及失败原因,所用时间等信息

    这里写图片描述




    6. 结语

    关于Android Studio单元测试的简易使用说明到这里结束,一些未涉及到的按钮大家可以自行尝试,UI操作的单元测试目前没有用到,且本人对这一块尚不熟悉,关于UI操作的单元测试暂时不做记录。

    备注

    1. 单元测试方法执行顺序按照方法名字A-Z顺序执行。

    2. 单元测试中每执行一个方法后会将已初始化的变量置为空,导致在下一个方法中该变量为空。将变量设为static可避免这种情况

    展开全文
  • 单元测试的内容与步骤

    千次阅读 2016-05-09 16:46:00
    单元测试针对程序模块,进行正确性检验的测试。其目的在于发现各模块内部可能存在的各种差错。单元测试需要从程序的内部结构出发设计测试用例。多个模块可以平行地独立进行单元测试。 ①单元测试的内容 模块接口...
  • 软件测试之单元测试的内容与步骤

    千次阅读 2008-07-31 09:29:00
    单元测试针对程序模块,进行正确性检验的测试。其目的在于发现各模块内部可能存在的各种差错。单元测试需要从程序的内部结构出发设计测试用例。多个模块可以平行地独立进行单元测试。 ①单元测试的内容 模块接口...
  • 单元测试基本路径覆盖法

    千次阅读 2014-06-10 14:19:45
    单元测试基本路径覆盖法 分类: 软件测试理论2009-06-22 15:23 3165人阅读 评论(3) 收藏 举报 单元测试测试图形工具算法  白盒测试的测试方法代码检查法、静态结构分析法、静态质量度量法、...
  • VS-单元测试-详细配置步骤

    千次阅读 热门讨论 2016-03-27 21:51:25
    单元测试单元测试(模块测试)是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。——百度百科 [csharp] view plain copy   string studentID = ...
  • 如何进行单元测试

    2021-03-23 11:51:11
    摘要:单元测试是软件测试的基础,本文详细的论述了单元测试的两个步骤人工静态检查法与动态执行跟踪法,所需执行的工作项目及相关的策略和方法。通过对这两个步骤的描述作者将多年的单元测试经验及测试理论注入于...
  • 单元测试基本方法

    千次阅读 2002-03-12 09:55:00
    单元测试基本方法 (本文转载自软件工程专家网www.21cmm.com) 单元测试的对象是软件设计的最小单位——模块。单元测试的依据是详细设描述,单元测试应对模块内所有重要的控制路径设计测试用例,以便发现模块内部...
  • 单元测试基本过程

    千次阅读 2004-10-23 17:16:00
    XP提倡一个规则叫做test-first design。采用Test First Design方法,你在编写一个新功能前先写一个单元测试,用它来测试实现... 单元测试基本过程: 1.设计一个应当失败的测试 。编译器应当立刻反映出失败。因为测
  • 单元测试与集成测试

    万次阅读 多人点赞 2019-09-17 08:25:00
    按测试策略和过程,软件测试分为单元测试、集成测试、确认测试和系统测试。 按软件系统工程,测试是软件质量保证的最后的一关。 高质量的程序取决于以下几个方面: 高质量的设计 规范的编码 有效的测试 开发部...
  • 单元测试的概念二、单元测试的作用三、Spring Boot引入的MockMvc的概念四、Service层的单元测试五、Controller层的单元测试六、断言的概念七、新断言assertThat使用八、Postman与Spring Boot 单元测试的区别九、...
  • JUnit单元测试

    千次阅读 2017-05-03 11:33:47
    其他种类的测试基本上都是由专门的测试人员来完成,只有单元测试是完全由开发人员来完成的。那么今天我们就来说说什么是单元测试,为什么要进行单元测试,以及如更好的何进行单元测试单元测试目的是什
  • 软件测试_单元测试和集成测试

    千次阅读 2019-11-25 19:39:27
    title: 软件测试_单元测试和集成测试 date: 2019-11-25 15:58:23 categories: 软件测试 tags: 单元测试和集成测试 什么是单元测试 单元测试就是对已实现的软件最小单元进行测试,以保证构成软件的各个单元的质量...
  • 单元测试1-为什么需要单元测试

    千次阅读 2016-10-10 11:35:11
    为什么需要单元测试  软件开发的标准过程包括以下几个阶段:『需求分析...测试过程按4个步骤进行,即单元测试、集成测试、系统测试及发版测试。其中功能测试主要检查已实现的软件是否满足了需求规格说明中确定了的
  • 单元测试

    千次阅读 2011-11-14 16:53:16
    在一种传统的结构化编程语言中,比如C,要...单元测试的原则同样被扩展到第四代语言(4GL)的开发中,在这里基本单元被典型地划分为一个菜单或显示界面。 经常与单元测试联系起来的另外一些开发活动包括代码走读(Code
  • Javascript单元测试及接口测试

    千次阅读 2018-09-30 16:15:25
    什么是单元测试 为什么要做单元测试 javascript测试框架对比 koa2中如何使用ava做单元测试 vue中如何使用ava做单元测试 koa2中如何使用ava做接口测试 单元测试是什么 单元测试(unit testing)指的是以软件的单元...
  • 软件测试系列之单元测试(1 基本理论) 整理资料时发现以前给兄弟们灌输的单元测试的一些基本知识,放在这里供大家参考。里面参考了网上很多朋友的资料,这里没一一列出,一并谢过。ppt转的,比较乱,ppt已经上传到...
  • android 单元测试

    千次阅读 2016-05-06 16:08:23
    今天来给大家介绍下android中的单元测试基本使用 What android的单元测试可以干些什么事 android的framework中提供有关单元测试的api,首先我们先来看一下api的架构体系图 由此可以见系统已经支
  • 在VS2010中,单元测试的功能很强大,使得建立单元测试和编写单元测试代码,以及管理和运行单元测试都变得简单起来,通过私有访问器可以对私有方法也能进行单元测试,并且支持数据驱动的单元测试。 1、建立单元测试...
  • 本文内容涉及单元测试,需要读者具有单元测试的基础知识,如果没有,请移步至我之前的博客文章: 【单元测试】开篇 【单元测试】Test Double简介 2. CMocka概述 官网:https://cmocka.org/ CMocka 是一款...
  • (1)单元测试(也称模块测试):针对软件设计的基本单元——程序模块,进行正确性检验的测试工作。目的在于发现各个模块内部可能存在的各种差错。单元测试需要从程序内部结构出发设计测试用例,多个模块可以平行、...
  • 主要介绍了Python单元测试框架unittest简明使用实例,本文讲解了基本测试步骤、和测试实例,需要的朋友可以参考下
  • 单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中...
  • 简述 在日常项目开发中,基本没有什么机会用到Kotlin,几个月前学习的语法,...单元测试中使用真实开发环境中的真实数据是不明智的,最好的方式是用本地的数据模拟网络请求,比如说我们这样一个API,联网library我们
  • 单元测试是最基本的测试步骤。位于整个产品开发流程V模型的最底部。大致如图,在各种开发流程中RA&PSD完成后,无需底层基础,UAT方案即可完成,下面的步骤也一样。UT做为底层和CODING同样重要的步骤,是每个CODER...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 95,982
精华内容 38,392
关键字:

单元测试基本步骤有哪些