集成测试

Spring Boot项目中使用Mockito

雨燕双飞 提交于 2019-12-02 14:38:46
摘自: https://www.cnblogs.com/javaadu/p/11748415.html Spring Boot项目中使用Mockito 本文首发于个人网站: Spring Boot项目中使用Mockito Spring Boot可以和大部分流行的测试框架协同工作:通过Spring JUnit创建单元测试;生成测试数据初始化数据库用于测试;Spring Boot可以跟BDD(Behavier Driven Development)工具、Cucumber和Spock协同工作,对应用程序进行测试。 进行软件开发的时候,我们会写很多代码,不过,再过六个月(甚至一年以上)你知道自己的代码怎么运作么?通过测试(单元测试、集成测试、接口测试)可以保证系统的可维护性,当我们修改了某些代码时,通过回归测试可以检查是否引入了新的bug。总得来说,测试让系统不再是一个黑盒子,让开发人员确认系统可用。 在web应用程序中,对Controller层的测试一般有两种方法:(1)发送http请求;(2)模拟http请求对象。第一种方法需要配置回归环境,通过修改代码统计的策略来计算覆盖率;第二种方法是比较正规的思路,但是在我目前经历过的项目中用得不多,今天总结下如何用Mock对象测试Controller层的代码。 在之前的几篇文章中,我们都使用bookpub这个应用程序作为例子,今天也不例外

Spring Boot 的单元测试和集成测试

谁说我不能喝 提交于 2019-11-30 14:22:12
学习如何使用本教程中提供的工具,并在 Spring Boot 环境中编写单元测试和集成测试。 1. 概览 本文中,我们将了解如何编写单元测试并将其集成在 Spring Boot 环境中。你可在网上找到大量关于这个主题的教程,但很难在一个页面中找到你需要的所有信息。我经常注意到初级开发人员混淆了单元测试和集成测试的概念,特别是在谈到 Spring 生态系统时。我将尝试讲清楚不同注解在不同上下文中的用法。 2. 单元测试 vs. 集成测试 维基百科是这么说 单元测试 的: 在计算机编程中,单元测试是一种软件测试方法,用以测试源代码的单个单元、一个或多个计算机程序模块的集合以及相关的控制数据、使用过程和操作过程,以确定它们是否适合使用。 集成测试 : “集成测试(有时也称集成和测试,缩写为 I&T)是软件测试的一个阶段,在这个阶段中,各个软件模块被组合在一起来进行测试。” 简而言之,当我们在做单元测试时,只是测试了一个代码单元,每次只测试一个方法,不包括与正测试组件相交互的其他所有组件。 另一方面,在集成测试中,我们测试各组件之间的集成。 由于单元测试,我们可知这些组件行为与所需一致,但不清楚它们是如何在一起工作的。 这就是集成测试的职责。 3. Java 单元测试 所有 Java 开发者都知道 JUnit 是执行单元测试的主要框架。它提供了许多注解来对期望进行断言。 Hamcrest

完整的IT项目开发流程

╄→尐↘猪︶ㄣ 提交于 2019-11-30 10:04:04
一般情况下,企业开发软件时会按照基线和定制两块并行方式执行项目开发工作。无论什么公司,都需要遵从一套成熟的产品研发过程体系,才能做出质量较好的产品。因此,如果出现项目较多的情况,应该合理地安排基线和定制之前的里程碑,让基线产品能够尽量多地收集用户的通用型需求,为定制项目进度实现技术支撑,减少定制项目中大量更改代码、需要新增模块情况发生。此外,产品研发过程体系也需要按照业务实际时间要求变化,不要拘泥于一定要按照瀑布方式,或是敏捷方式进行管理,凡事都需要找到契合自己的方式。 【这里以一个基线产品开发过程作为流程解释基础,需要注意的是,以下说描述的各个阶段,在项目执行前要明确各个阶段的目标、指定计划、及时沟通,并确保各个时期所有成员对项目理解一致】 项目启动会 项目启动会的目标是明确该产品开发项目的目标。目标不是孤立存在的,目标与计划相辅相成,目标指导计划,计划的有效性影响着目标的达成。所以在执行目标的时候,考虑清楚自己的行动计划,怎么做才能更有效地完成目标,是每个人都要详情清楚的问题,否则,目标越是不清晰或是过高,都会影响项目的实际结果。 项目启动会需要说明项目目标、阶段划分、组织结构、管理流程等关键事项,并将这些内容写入 PPT(最好是有固定格式和范文,让团队内部或者公司内部共同遵守规范),需要大家达成一致。对于关键角色任命,事前也需要听取相关领导和项目主要干系人的意见。 用户需求

【软件测试】测试基础内容和方法总结

本小妞迷上赌 提交于 2019-11-29 07:53:46
文章目录 一个测试活动完整的过程 测试计划工作的目的、测试计划文档的内容包括什么? 测试用例通常包括那些内容? 测试人员在软件开发过程中的任务是什么? 软件测试分为几个阶段,各阶段的测试策略和要求是什么? 单元测试 请回答集成测试和系统测试的区别,以及它们的应用场景主要是什么? 你在测试中发现了一个bug,但是开发经理认为这不是一个bug,你应该怎么解决? 请问你觉得测试项目具体工作是什么? 软件测试方法 黑盒测试 边界值分析法 因果图法 判定表法 白盒测试 语句覆盖 判定覆盖 条件覆盖 判定/条件覆盖 条件组合覆盖 性能测试 性能测试类型 负载测试:是指对系统不断地增加压力或增加一定压力下的持续时间,知道系统的某项或多项性能指标达到安全临界值,例如某种资源已经达到饱和状态等 压力测试:压力测试是评估系统处于或超过预期负载时系统的运行情况,关注点在于系统在峰值负载或超出最大载荷情况下的处理能力。 恢复测试 强度测试 疲劳强度测试 每一阶段测试基于的文档 一个测试活动完整的过程 项目立项前测试人员不需要提供任何工件 项目经理 通过和客户交流,完成 需求文档 ,由开发人员和测试人员共同完成需求文档的评审,评审的内容包括:需求描述不清楚的地方和可能有明显冲突或者无法实现的功能的地方。 项目经理通过综合开发人员、测试人员以及客户的意见,完成 项目计划 。然后SQA进入项目

黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别与联系

旧巷老猫 提交于 2019-11-28 23:29:23
对于开发人员来说,往往对各种测试方法感到疑惑。特别是在整合代码的时候,我们就能深刻感觉受到测试的重要性。很多开发人员只注重写代码,轻视测试的重要性。总是代码一写完提交然后就交给测试组测试了,没多久测试组发回测试报告。然后又苦恼的修改自己代码的bug,慢慢地就开始讨厌测试组人员。没有经过自己细心测试的代码,不仅浪费了别人时间更影响到了自己的心情。 企业级项目实战(带源码)地址 : http://zz563143188.iteye.com/blog/1825168 收集五年的开发资料下载地址: http://pan.baidu.com/share/home?uk=4076915866&view=share 接下来为大家细心讲述一下各种测试应用的环境及作用 一、测试环境和角色 黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试 : 这些测试的范围正好是逐步递增的关系,但是测试的人员角色是不同。 黑盒测试、白盒测试、单元测试:开发人员分在不同的开发阶段要做的事情 黑盒测试、集成测试、系统测试:测试人员在测试周期内级层做的工作 验收测试:一般是在用户方做的工作 二、根据不同的范围 测试可以分为单元测试、集成测试、系统测试和验收测试。 体现了测试由小到大、又内至外、循序渐进的测试过程和分而治之的思想。 三、测试的功能 1.单元测试 粒度最小,一般由开发小组采用白盒方式来测试

.net core + xunit 集成测试

白昼怎懂夜的黑 提交于 2019-11-28 01:36:59
xunit地址: https://github.com/xunit/xunit 一、利用请求来测试接口,主要是测试webapi控制器方法 ①添加xunit项目 ,然后引用我们的主项目,nuget: Microsoft.AspNetCore.TestHost, Microsoft.AspNetCore.Mvc.Testing(不然找不到接口地址), Microsoft.NETCore.App, Microsoft.AspNetCore.App , Microsoft.EntityFrameworkCore.InMemory 使用内存数据库进行测试 ②在主项目中写几个测试接口 ③测试项目中创建 TestServerFixture public class TestServerFixture : IDisposable { private readonly TestServer _testServer; public HttpClient Client { get; } public TestServerFixture() { var bulild = new WebHostBuilder().UseStartup<Startup1>(); _testServer = new TestServer(bulild); Client = _testServer.CreateClient();

ASP.NET Core Web API 集成测试

感情迁移 提交于 2019-11-27 23:55:01
本文需要您了解ASP.NET Core Web API 和 xUnit的相关知识. 这里有xUnit的介绍: https://www.cnblogs.com/cgzl/p/9178672.html#test ASP.NET Core集成测试官方文档: https://docs.microsoft.com/en-us/aspnet/core/test/integration-tests?view=aspnetcore-2.1 集成测试 vs 单元测试 测试金字塔, 但它只是一个指导性的概念. 如果所单元测试是对一个组件进行隔离测试的话, 那么集成测试则是测试多个组件共同协作产生出期待的结果. 单元测试通常很快. 而集成测试则慢的多, 因为它需要很多配置, 并且可能依赖于外部的组件, 例如数据库, 网络, 文件等. 通常在一个项目里单元测试要比集成测试多很多. 单元测试通常依赖于mock的组件, 而集成测试则使用可运行的组件. 注意: 如果一个行为可以通过单元测试或集成测试来测试的话, 那么应该使用单元测试 . 如何进行集成测试 如果我想测试一个API Controller的Action, 我可能需要把这个项目运行起来, 等它跑起来, 发送请求并检验结果. 但这样做的话需要很多的配置工作, 并且很麻烦. 幸好ASP.NET Core 提供了一个 Microsoft.AspNetCore

.netcore持续集成测试篇之 .net core 2.1项目集成测试

家住魔仙堡 提交于 2019-11-27 20:31:43
系列目录 从.net到.net core以后,微软非常努力,以每年一到两个大版本的频率在演进.net core,去年相继发布了.net core 2.1和2.2,其中2.1是长期支持版,不断的快速更新一方面快速弥补了相比.net framework缺失的api,同时也带来了不少激进性的改变,导致很多api,尤其是较传统framework相比新增的api不断调整,有些api在上一个版本还能用,结果到下一个版本就不支持了.升级到2.1以后,微软就更改了集成测试服务器的包名并改变了2.0的接口,进行了更高层次的封装,降低了使用配置难度.但是截至写本文时VisualStudio工具支持仍然不是太好,需要手动修改csproj文件.但是这个工作也是一次性的.配置好了就ok啦. 看到这里可能有些同志会担心接口变化很大以前学的东西都白瞎了,其实不然,只是创建TestServer的方式变了,我们实际测试中用到的最多的是HttpClient这个对象,它并没有变. 下面就介绍一下.net core 2.1下如何搭建一个内存集成测试服务器. 首先我们新建一个.net core 2.1的mvc项目,并创建一个Xunit单元测试项目,引用刚创建的这个mvc项目,关于创建跟前面一样,这里不再赘述. 下载以下两个包: Microsoft.AspNetCore.App和Microsoft.AspNetCore

软件测试的粒度

一世执手 提交于 2019-11-27 01:27:54
软件测试的粒度分为:单元测试、软件集成测试、系统集成测试、系统测试。 单元测试:可以理解为测试函数。 软件集成测试:软件包含多个模块,软件集成测试就是 模块集成软件的过程中是否有错误,可以理解为测试函数的调用。 系统集成测试:系统包含多个子系统,系统集成测试就是 子系统集成系统的过程中是否有错误,可以理解为测试子系统之间的调用。 系统测试:测试整个系统。 转载于:https://www.cnblogs.com/nzbbody/archive/2012/02/10/2345713.html 来源: https://blog.csdn.net/weixin_30509393/article/details/99234383

软件测试

自作多情 提交于 2019-11-27 01:18:38
1、整个流程:需求分析-->概要设计-->详细设计-->编码实现-->单元测试-->集成测试-->系统测试-->验收测试。 2、单元测试覆盖率包括:语句覆盖,判定覆盖,条件覆盖,判定条件覆盖,条件组合覆盖,路径覆盖。 转载于:https://www.cnblogs.com/nzbbody/p/3558397.html 来源: https://blog.csdn.net/weixin_30751947/article/details/99234669