单元测试

编写 Django 应用单元测试

被刻印的时光 ゝ 提交于 2020-02-21 09:35:32
作者: HelloGitHub-追梦人物 文中所涉及的示例代码,已同步更新到 HelloGitHub-Team 仓库 我们博客功能越来越来完善了,但这也带来了一个问题,我们不敢轻易地修改已有功能的代码了! 我们怎么知道代码修改后带来了预期的效果?万一改错了,不仅新功能没有用,原来已有的功能都可能被破坏。此前我们开发一个新的功能,都是手工运行开发服务器去验证,不仅费时,而且极有可能验证不充分。 如何不用每次开发了新的功能或者修改了已有代码都得去人工验证呢?解决方案就是编写自动化测试,将人工验证的逻辑编写成脚本,每次新增或修改代码后运行一遍测试脚本,脚本自动帮我们完成全部测试工作。 接下来我们将进行两种类型的测试,一种是单元测试,一种是集成测试。 单元测试是一种比较底层的测试,它将一个功能逻辑的代码块视为一个单元(例如一个函数、方法、或者一个 if 语句块等,单元应该尽可能小,这样测试就会更加充分),程序员编写测试代码去测试这个单元,确保这个单元的逻辑代码按照预期的方式执行了。通常来说我们一般将一个函数或者方法视为一个单元,对其进行测试。 集成测试则是一种更加高层的测试,它站在系统角度,测试由各个已经经过充分的单元测试的模块组成的系统,其功能是否符合预期。 我们首先来进行单元测试,确保各个单元的逻辑都没问题后,然后进行集成测试,测试整个博客系统的可用性。 Python 一般使用标准库

SpringBootTest测试时不启动程序

非 Y 不嫁゛ 提交于 2020-02-19 04:25:15
开发spring boot 程序过程,如果要针对某个方法做单元测试。一般使用开发工具新建项目都会自动生成单元测试单元。但是默认情况下的配置在测试中会启动程序,如果不想要启动可以修改如下代码 @RunWith(SpringRunner.class) @SpringBootTest public class ests { } 上面代码意思是针对所有class进行扫描,添加(classes=Tests.class)属性可以针对某些类做单元测试。 开发spring boot 程序过程,如果要针对某个方法做单元测试。一般使用开发工具新建项目都会自动生成单元测试单元。但是默认情况下的配置在测试中会启动程序,如果不想要启动可以修改如下代码 来源: CSDN 作者: 别抢我蓝buff 链接: https://blog.csdn.net/qq_44813090/article/details/104383548

软件测试总结

这一生的挚爱 提交于 2020-02-18 12:30:23
测试概述 1. lazytest 软件测试概述 https://www.cnblogs.com/lazytest/p/5545571.html 2. Cacra 软件测试概述 https://blog.csdn.net/u014465934/article/details/80931508 3. 软件测试 摘自 wiki 单元测试 1. 我是一名老菜鸟 单元测试概述 2. 四班&田晨阳 单元测试概述 集成测试 1. 印记嘟嘟 软件测试之-集成测试 系统测试 1. zhang_xiaoyi https://blog.csdn.net/zhang_xiaoyi/article/details/79097114 验收测试 1. 飘走的我 https://blog.csdn.net/qq_33642117/article/details/54341831 回归测试 1. zhusongziye https://blog.csdn.net/zhusongziye/article/details/80383878 来源: CSDN 作者: lynchyueliu 链接: https://blog.csdn.net/lynchyueliu/article/details/104370465

python - unittest 单元测试学习

大城市里の小女人 提交于 2020-02-18 07:23:47
单元测试 单元测试是用来对一个模块、一个函数或者一个类进行正确性检验的测试工作 比如对Python中的abs 的测试 输入正数: 比如 1, 2, 3, 返回值不变 输入负数: 比如 -1, -2, -3, 返回值是本身取反 输入0: 比如 0, 返回值0 把上面的测试用例放到一个测试模块里,就是一个完整的单元测试。 如果单元测试通过,说明我们测试的这个函数能够正常工作。如果单元测试不通过,要么函数有bug,要么测试条件输入不正确,总之,需要修复使单元测试能够通过。 单元测试通过后有什么意义呢?如果我们对abs()函数代码做了修改,只需要再跑一遍单元测试,如果通过,说明我们的修改不会对abs()函数原有的行为造成影响,如果测试不通过,说明我们的修改与原有行为不一致,要么修改代码,要么修改测试。 这种以测试为驱动的开发模式最大的好处就是确保一个程序模块的行为符合我们设计的测试用例。在将来修改的时候,可以极大程度地保证该模块行为仍然是正确的。 我们来编写一个Dict类,这个类的行为和dict一致,但是可以通过属性来访问,用起来就像下面这样: >>> d = Dict(a=1, b=2) >>> d['a'] 1 >>> d.a 1 Dict 类的具体实现: 1 class Dict(dict): 2 def __init__(self,**kw): 3 super(Dict,self)

基于springboot的junit单元测试

和自甴很熟 提交于 2020-02-17 15:15:35
首先就是要有一个springboot项目,具体怎么创建就不过多赘述,不懂的小伙伴自行查找资料。 创建好springboot项目后,添加单元测试需要的依赖,这是我项目的依赖 在导入jar包后就可以对要测试的类进行快速测试,右击想要测试的类的类名选择goto->test后会新建测试文件。 springboot记得要加上注解@RunWith,@SpringBootTest,以下是我的测试文件 记得在测试的方法加上注解@Test,如此一个单元测试就完成了。 如果有测试前需要完成的工作或者测试后的工作要在方法前加上@Before和@After 来源: CSDN 作者: cyy56 链接: https://blog.csdn.net/cyy56/article/details/104355870

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

▼魔方 西西 提交于 2020-02-17 14:02:30
gtest github: https://github.com/google/googletest 学习: 玩转Google开源C++单元测试框架Google Test系列(gtest)(总) 一、安装 1、gtest不是传统的unix安装模式(./configure; make; make install) 2、进入 ${GTEST_DIR} g++ -isystem include -I./ -pthread -c src/gtest-all.cc ar -rv libgtest.a gtest-all.o (We need -pthread as Google Test uses threads.) 官方指导:https://github.com/google/googletest/blob/master/googletest/README.md 参考:http://blog.csdn.net/macchan/article/details/17657231# 二、验证是否成功 cd ${GTEST_DIR}/make 会发现这个文件下有个Makefile make 会生成一些sample执行文件 选一个执行,./sample1_unittest,如果看到典型的gtest输出log就说明成功了 三、使用示例 1、安装与验证完毕之后还不能直接使用   将${GTEST_DIR

单元测试不止 Junit

断了今生、忘了曾经 提交于 2020-02-17 09:03:52
一、前言 在前面的章节我们介绍过 Junit 的使用,也了解过 spring-test,今天我们来了解一个新玩意 – mock 测试。这里仅仅做一个入门,对返回视图和返回 Json 数据的方法进行测试演示,不会把所有的方法都介绍到,具体文档详见链接:Mock Test,本章节主要讲解以下两部分内容: 1、Mock 测试简介 2、测试用例演示 二、Mock 测试简介 1、什么是 mock 测试 在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个 虚拟的对象 来创建以便测试的测试方法,就是 mock 测试 在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个 虚拟的对象 来创建以便测试的测试方法,就是* mock 测试*。 虚拟的对象就是 mock 对象。 mock 对象就是真实对象在调试期间的代替品。 2、为什么使用 mock 测试 避免开发模块之间的耦合 轻量、简单、灵活 3、MockMVC 介绍 基于 RESTful 风格的 SpringMVC 的测试,我们可以测试完整的 Spring MVC 流程,即从 URL 请求到控制器处理,再到视图渲染都可以测试。 1)MockMvcBuilder MockMvcBuilder 是用来构造 MockMvc 的构造器,其主要有两个实现:StandaloneMockMvcBuilder 和

单元测试Unit5

廉价感情. 提交于 2020-02-17 04:46:11
学习自 一般一个service对应一个servicetest,一个service里面的接口的方法对应一个或多个test接口。 创建一个springboot项目 main目录红框里的是springboot的主类,我们测试用test目录下。 @Test注解 用来测试方法的注解。 assertions是断言,assertequals可以判断是不是期望值,assertTrue的期望值是不是true。 例子: import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; /** * assertions是断言,assertequals可以判断是不是期望值 * assertTrue的期望值是不是true */ public class Test1 { @Test void fun1(){ int res=1+1;// Assertions.assertEquals(2,res); Assertions.assertTrue(2==res); } } @BeforeAll,只初始化一次,注解的方法必须为静态方法。 @AfterAll,结尾中运行一次,注解的方法必须为静态方法。 @BeforeEach,在运行每次有test注解的方法之前都运行一遍beforeeach注解的方法。 @AfterEach

软工实践寒假作业(2/2)

别等时光非礼了梦想. 提交于 2020-02-15 11:11:49
软工实践寒假作业(2/2) 格式描述 这个作业属于哪个课程 2020春|S班 (福州大学) 这个作业要求在哪里 作业要求的链接 这个作业的目标 开发疫情统计程序,并借此熟悉程序开发流程和github的使用 作业正文 .... 其他参考文献 博客园 github仓库地址: https://github.com/bzzd2333/InfectStatistic-main 1、PSP表格 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 30 30 Estimate 估计这个任务需要多少时间 30 30 Development 开发 365 475 Analysis 需求分析 (包括学习新技术) 20 25 Design Spec 生成设计文档 20 30 Design Review 设计复审 10 10 Coding Standard 代码规范 (为目前的开发制定合适的规范) 15 20 Design 具体设计 20 25 Coding 具体编码 240 300 Code Review 代码复审 10 40 Test 测试(自我测试,修改代码,提交修改) 30 25 Reporting 报告 140 170 Test Repor 测试报告 20 20 Size Measurement 计算工作量

php的单元测试,PHPUnit安装

杀马特。学长 韩版系。学妹 提交于 2020-02-15 07:48:25
最近研究php的单元测试功能,在centos下和widows下安装了phpunit 首先要保证 你装的php中安装了pear linux下输入命令pear 回车可看一下是否安装了 windows下可以用dos进入到php的安装目录 ,输入命令pear 回车可看一下是否安装了 在默认情况下php中都会安装的 pear的安装 windows下用dos进入php的安装根目录 运行go-pear,r然后输入两次yes 然后 后边的选项直接用回车 然后我们要添加Channel pear channel-discover pear.phpunit.de pear channel-discover components.ez.no pear channel-discover pear.symfony-project.com 我在这个地方遇到了 .lock 访问权限的错误而安装失败,这是我们可以在PEAR文件夹下删除此文件 开始安装phpunit,首先升级pear,输入命令 pear upgrade pear 接下来执行pear install --alldeps --force phpunit/PHPUnit,此时我遇到了下图所示的问题,包依赖 很简单 我们把这些包用pear install命令安装了 即可 可能执行完这个之后你的phpunit还是提示安装失败 它提示我们要更新pear包