单元测试

JavaSE-单元测试、反射、注解

旧城冷巷雨未停 提交于 2019-12-10 16:20:44
[TOC] 第一章:单元测试 1.1 测试分类 黑盒测试,不需要写代码,给输入值,看程序是否能够输出期望的值。 白盒测试,需要写代码的。关注程序具体的执行流程。 利用java中的junit依赖环境是白盒测试的一种方式 1.2 Junit的使用步骤 定义一个测试类(测试用例) 定义测试方法:可以独立运行 给方法加@Test 导入junit依赖环境 判定结果: 红色:失败 绿色:成功 一般我们会使用断言操作来处理结果 Assert.assertEquals(期望的结果,运算的结果) ; Before和After @Before: 修饰的方法会在测试方法之前被自动执行 @After: 修饰的方法会在测试方法执行之后自动被执行 1.3 Junit使用 程序代码 /* * 计算器类 * */ public class Calc { public int add(int num1,int num2){ return num1+num2; } public int subtract(int num1,int num2){ return num1-num2; } public int multi(int num1,int num2){ return num1*num2; } public int div(int num1,int num2){ return num1+num2; } } 测试代码

如何做好接口测试?【转载】

半腔热情 提交于 2019-12-10 02:21:34
sgbtmy:基于selenium的自动化框架开发,我主要是想问一下,你的框架除了前台的自动化,后台的数据的 测试 是否集成在你的测试框架中?    小刀: 你好,个人理解的你所说的后台的数据的测试是指的是对数据的校验,不知理解的是否正确,那么根据这个理解,我的解释是,在我们框架中,增加了很多的功能方法用来帮助进行自动化脚本的编写和结果校验,其中就包括后台数据校验方法,当我们的 测试用例 需要在后台进行数据校验的时候,调用这些数据校验方法即可。相当于是,前台页面操作的自动化是封装selenium的方法去操作页面,而对后台数据的校验是通过增加功能方法来实现的,可以理解为不同的两部分,但是在编写测试脚本的似乎,根据测试用例的设计,这两部分都可以拿过来使用。   不知道是否解答了你的疑问,如果没有,请你指出,谢谢你。 tjy688:你们做 接口测试 的流程一般是怎么样的?    小刀: 接口测试的流程其实和 功能测试 的流程类似,因为接口测试依赖的主要对象也是需求说明书,所以,最初的流程就是参与需求讨论,评审需求。   需求确定以后,开发会根据需求进行接口设计,会产出接口定义,在开发设计过程中,有能力的话,可以给出一些针对设计的建议,提高可测性,针对需求及设计,进行测试计划,测试设计,然后还需要和配管确定测试环境相关的事情。   在开发完成接口定义之后

如何做好接口测试?

坚强是说给别人听的谎言 提交于 2019-12-10 02:12:21
sgbtmy:基于selenium的自动化框架开发,我主要是想问一下,你的框架除了前台的自动化,后台的数据的 测试 是否集成在你的测试框架中?    小刀: 你好,个人理解的你所说的后台的数据的测试是指的是对数据的校验,不知理解的是否正确,那么根据这个理解,我的解释是,在我们框架中,增加了很多的功能方法用来帮助进行自动化脚本的编写和结果校验,其中就包括后台数据校验方法,当我们的 测试用例 需要在后台进行数据校验的时候,调用这些数据校验方法即可。相当于是,前台页面操作的自动化是封装selenium的方法去操作页面,而对后台数据的校验是通过增加功能方法来实现的,可以理解为不同的两部分,但是在编写测试脚本的似乎,根据测试用例的设计,这两部分都可以拿过来使用。   不知道是否解答了你的疑问,如果没有,请你指出,谢谢你。   tjy688:你们做 接口测试 的流程一般是怎么样的?    小刀: 接口测试的流程其实和 功能测试 的流程类似,因为接口测试依赖的主要对象也是需求说明书,所以,最初的流程就是参与需求讨论,评审需求。   需求确定以后,开发会根据需求进行接口设计,会产出接口定义,在开发设计过程中,有能力的话,可以给出一些针对设计的建议,提高可测性,针对需求及设计,进行测试计划,测试设计,然后还需要和配管确定测试环境相关的事情。   在开发完成接口定义之后

玩转Google开源C++单元测试框架Google Test系列(gtest)(总)

≯℡__Kan透↙ 提交于 2019-12-09 22:51:55
前段时间学习和了解了下Google的开源C++单元测试框架Google Test,简称gtest,非常的不错。 我们原来使用的是自己实现的一套单元测试框架,在使用过程中,发现越来越多使用不便之处,而这样不便之处,gtest恰恰很好的解决了。 其实gtest本身的实现并不复杂,我们完全可以模仿gtest,不断的完善我们的测试框架, 但最后我们还是决定使用gtest取代掉原来的自己的测试框架,原因是: 1.不断完善我们的测试框架之后就会发觉相当于把gtest重新做了一遍,虽然轮子造的很爽,但是不是必要的。 2.使用gtest可以免去维护测试框架的麻烦,让我们有更多精力投入到案例设计上。 3.gtest提高了非常完善的功能,并且简单易用,极大的提高了编写测试案例的效率。 gtest的官方网站是: http://code.google.com/p/googletest/ 从官方的使用文档里,你几乎可以获得你想要的所有东西 http://code.google.com/p/googletest/wiki/GoogleTestPrimer http://code.google.com/p/googletest/wiki/GoogleTestAdvancedGuide 如果还想对gtest内部探个究竟,就把它的代码下载下来研究吧,这就是开源的好处,哈! 官方已经有如此完备的文档了

深入 Python :Dive Into Python 中文版 读书笔记 第13,14,15单元测试

寵の児 提交于 2019-12-09 20:49:58
第 13 章 单元测试 13.4. 正面测试 (Testing for success) 13.5. 负面测试 (Testing for failure) 测试有效输入还不够,还必需测试无效输入,而且要按预期失败形式执行 13.6. 完备性检测 (Testing for sanity) 测试的一条基本规则: 每个测试用例只回答一个问题 。 另一个基本规则: 每个测试用例必须可以与其他测试用例隔离工作,每个测试用例是一个“孤岛”,降低测试间的藕合 第 14 章 测试优先编程 当所有测试都通过了,停止编程。 第 15 章 重构 不要怕麻烦,今天的单元测试就是明天的回归测试 (regression test) 15.2. 应对需求变化 全面的单元测试意味着不必依赖于程序员的一面之词 15.3. 重构 预编译正则 使用新的表达式,如: M?M?M?M? 替换为 M{0,4} 在正则里增加注释,使用re.VERBOSE 选项,告诉 Python 正则表达式里有内联注释,像下面这样 <pre> romanNumeralPattern = re.compile(''' ^ # beginning of string M{0,4} # thousands - 0 to 4 M's (CM|CD|D?C{0,3}) # hundreds - 900 (CM), 400 (CD), 0-300 (0

Python unittest(PyUnit)单元测试框架

喜欢而已 提交于 2019-12-09 19:33:56
PyUnit(unittest) 是 Python 自带的单元测试框架,用于编写和运行可重复的测试。PyUnit 是 xUnit 体系的一个成员,xUnit 是众多测试框架的总称,PyUnit 主要用于进行白盒测试和回归测试。 如果你使用的是 2.1 或更早版本的 Python,则可能需要自行下载和安装 PyUnit,现在的开发者通常不需要操心这些事情。 通过 PyUnit 可以让测试具有持久性,测试与开发同步进行,测试代码与开发代码一同发布。使用 PyUnit 具有如下好处: 可以使测试代码与产品代码分离。 针对某一个类的测试代码只需要进行较少的改动,便可以应用于另一个类的测试。 PyUnit 开放源代码,可以进行二次开发,方便对 PyUnit 的扩展。 PyUnit 是一个简单、易用的测试框架,其具有如下特征: 使用断言方法判断期望值和实际值的差异,返回 bool 值。 测试驱动设备可使用共同的初始化变量或实例。 测试包结构便于组织和集成运行。 PyUnit (unittest) 的用法 所有测试的本质其实都是一样的,都是通过给定参数来执行函数,然后判断函数的实际输出结果和期望输出结果是否一致。 PyUnit 测试与其他 xUnit 的套路一样,基于断言机制来判断函数或方法的实际输出结果和期望输出结果是否一致,测试用例提供参数来执行函数或方法,获取它们的执行结果

ruby on rails单元测试

我怕爱的太早我们不能终老 提交于 2019-12-09 18:55:04
1.运行单个用例 cd path/to/project ./bin/rake test test/controllers/helper_controller_test.rb test_something_single 2.运行单个文件 cd path/to/project ./bin/rake test test/controllers/helper_controller_test.rb 3.运行这个文件夹下的子文件夹 cd path/to/project ./bin/rake test test/controllers 4.运行整个项目 cd path/to/project ./bin/rake test 或者 ./bin/rake test test 最后一个test是文件夹名称,可以省略 来源: oschina 链接: https://my.oschina.net/u/273719/blog/487665

ssm项目使用junit进行单元测试

三世轮回 提交于 2019-12-09 16:25:00
1、在maven中导入   junit-4.12.jar;   spring-test.jar;(版本号要与项目spring版本一致)   hamcrest-core-1.3.jar;(这个包是配合junit使用,不然在导入SpringJUnit4ClassRunner.class时里面继承的BlockJUnit4ClassRunner无法引用)2、代码实例   package cn.ljs.util.InterfaceDemo;import cn.ljs.entity.PurchaseBidNotice;import cn.ljs.service.FBYQNoticeService;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import java.util.List;import java.util.Map;@RunWith

[Python]使用pytest进行单元测试

♀尐吖头ヾ 提交于 2019-12-09 13:57:24
安装pytest pipenv install pytest 验证安装的版本: pytest --version This is pytest version 5.3.1, imported from /home/wangju/.virtualenvs/demo_pytest-0JOM2vOx/lib/python3.6/site-packages/pytest.py 接下来通过,几个实例熟悉pytest的用法 实例1: 新建1个py文件,内容如下: 只运行1个case 注意:py文件要以test_开头,否则运行pytest不会运行py文件中的测试方法 import pytest def func(x): return x+1 def test_func(): assert func(3) ==5 执行测试: 执行测试的时候,我们只需要在测试文件test_demo1所在的目录下,运行pytest即可。pytest会在当前的目录下,寻找以test开头的文件(即测试文件),找到测试文件之后,进入到测试文件中寻找test_开头的测试函数并执行。 效果: 分析说明: 标记1处使用命令pytest运行测试 标记2处可以看出断言失败的原因:assert 4==5失败了 实例2: 在终端执行命令运行pytest: pytest -q test_demo2.py 效果: 分析说明: 标记1处:

第三次作业 结对编程

主宰稳场 提交于 2019-12-09 09:43:35
结对编程完成WordCount 合作者:201731062301 201731062304(学号) 本次作业链接: https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass1/homework/2882 一.Github项目地址及作业地址 1.结对使用的Github项目地址: https://github.com/qili12/WordCount.git 2.结对伙伴的作业地址: https://www.cnblogs.com/3451ymx/p/10647277.html 二.结对过程及填写PSP表格 1.结对过程 找好结对的小伙伴,根据代码功能模块的要求,进行模块编写的分工。 按照掌握知识的熟练程度以及对不同知识掌握运用能力来分工合作完成这个项目 。 2.填写PSP表格 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 45 45 · Estimate · 估计这个任务需要多少时间 45 45 Development 开发 910 1295 · Analysis · 需求分析 (包括学习新技术) 45 60 · Design Spec · 生成设计文档 30 45 · Design Review · 设计复审