(十)play之yabe项目【测试】
项目测试
一个项目,首先得经过一系列的测试(开发人员自测,专门的测试人员测试,客户测试)才能上线运行。
尽早发现问题对大家都有好处,作为一个开发人员,自己写的代码最好充分自测后再提交测试。
测试从不同业务层面分:
unit test 单元测试
Basic Test
functional test 功能性测试
Application Test
selenium test
Application
核心模块的测试---yabe项目的模型层,前面已经进行测试了。
Web接口测试,即yabe项目的控制器层还未测试。
UI测试也未做,即javascript代码的测试。
测试控制器部分
Play基于JUnit可以直接测试应用程序的控制器,这种测试称为“功能性测试”。
一个功能性测试将直接调用play的ActionInvoker,相当于模拟一个HTTP请求;
play接收到请求后,会路由这些请求,调用相应的action,并且响应结果到客户端。
客户端接收到响应后,即一个Response对象,就可以对结果进行分析了!
该部分是在未开发出具体模板的情况下用的(就是还没有页面的时候)?
否,对于返回类型为json或者xml格式的webservice时,这样很方便查看结果!
如果页面都开发好了,直接从页面测试不是更直观吗?
是,能够在页面进行测试,那更好,play提供的selenium测试就是这样的!
第1个测试,对应用程序的主页进行测试
预期:
访问主页,返回状态码200,数据类型text/html,编码为UTF-8
- import org.junit.*;
- import play.test.*;
- import play.mvc.*;
- import play.mvc.Http.*;
- import models.*;
- /**
- * FunctionalTest 由Play提供
- * 继承它可以获得很多方法,进行测试工作
- *
- */
- public class ApplicationTest extends FunctionalTest {
- @Test
- public void testThatIndexPageWorks() {
- //请求应用程序的主页
- Response response = GET("/");
- //判断响应码是否为200
- assertIsOk(response);
- //响应内容类型是否为text/html
- assertContentType("text/html", response);
- //响应内容的编码是否为utf-8
- assertCharset(play.Play.defaultWebEncoding, response);
- }
- }
第2个测试,测试Admin控制器
预期:
访问/admin,由于未登陆,Security会进行身份验证
身份验证失败,会跳转到登陆页面/login
请求的路径发生了改变,会返回302状态码
- @Test
- public void testAdminSecurity() {
- Response response = GET("/admin");
- assertStatus(302, response);
- assertHeaderEquals("Location", "/login", response);
- }
运行 play test 命令启动yabe项目,打开http://localhost:9000/@tests
选择要运行的测试项,点击Start,开始测试!
测试这部分暂时放一下,空了回来再学!
(十)play之yabe项目【测试】相关推荐
- 菜鸟学Java(十九)——WEB项目测试好帮手,Maven+Jetty
做WEB开发,测试是一件很费时间的事情.所以我们就应该用更简单.更快捷的方式进行测试.今天就向大家介绍一个轻量级的容器--jetty.今天说的etty是Maven的一个插件jetty-maven-pl ...
- 看看数据科学家们都在用什么:Github上的十大深度学习项目
本文作者Matthew May是一位正在进行并行式机器学习算法研究的计算机硕士研究生,同时Matthew也是一位数据挖掘研习者,数据发烧友,热忱的机器学习科学家.开源工具在数据科学工作流中起到了愈发重 ...
- 第一百一十四期:盘点十大最新Web UI测试工具
本文为您盘点目前十大最新Web UI测试工具的各自优缺点,以方便您根据实际情况进行选择. 作者:陈峻 在过去的几年中,业界至少出现了十二种全新的UI测试自动化工具.虽然每一种工具都有各自的侧重点,但是 ...
- 项目测试流程规范(不同公司流程规范不一样,仅供参考)
前言:结合公司的项目情况制定合理的测试流程,提高测试效率和产品质量.核心还是要加强项目成员之间的沟通,在保障研发效率的前提下提高产品质量. 一.测试流程图 上述流程图为项目的测试流程图,每家公司用的项 ...
- 唐诗分析 今析古言项目测试 -2
一.了解项目需求 1.项目背景:唐朝是我国诗歌文化的创作鼎盛时期,为了分析唐代大佬的唐诗创作数量以及常用的诗词,唐诗你的生活. 2.项目开发:Yimm 3.项目测试:Yimm 本项目用爬取了古诗文网的 ...
- Github十大深度学习项目
Github十大深度学习项目,其中包含了大量的代码库,框架以及学习资料.看看Github上的人们都在使用哪些工具,都在从哪些资源那里进行学习.最新KDnuggets软件调查结果表明,在过去12个月,7 ...
- 3.Hadoop3.x 项目测试
文章目录 Hadoop3.x 项目测试 项目一 : 本地运行模式测试 项目二 : 集群文件同步测试 项目三 : 上传文件到集群测试 项目四 : 集群 HDFS Shell 命令测试 项目五 : IDE ...
- 新一代大数据任务调度 - Apache DolphinScheduler喜提十大开源新锐项目 最具人气项目
经 10000+ 开发者公开票选,20+专家评审. 10+ 主编团打分,历经数月打磨,11 月 19 日,由InfoQ 发起并组织的[2020中国技术力量年度榜单评选]结果正式揭晓. 2020 年度十 ...
- 【喜讯】Apache DolphinScheduler 荣获 “2020 年度十大开源新锐项目”
经 10000+ 开发者公开票选,20+专家评审. 10+ 主编团打分,历经数月打磨,11 月 19 日,由InfoQ 发起并组织的[2020中国技术力量年度榜单评选]结果正式揭晓. 2020 年度十 ...
最新文章
- 关于Synchronized研伸扩展
- C/C++服务器开发的必备利器–libconfig
- 云时代的安全解读:云安全≠云计算安全
- WKWebView不显示提示框(Swift)
- 如何判断数组是静态还是动态分配的
- alsa 测试 linux_Linux低延迟服务器系统调优
- Fence Repair POJ - 3253
- 信号转化java_Java基础知识回顾-7
- [编程启蒙游戏] 2. 奇偶数
- android 指定资源id,Android 通过名称获取资源ID
- javascript节点的操作 创建、添加、移除、移动、复制
- PATH与CLASSPATH的区别
- 《数字图像处理(第三版)》 第一章 绪论 笔记
- i.mx6ull uboot移植
- win10中的depends walker不兼容问题
- excel合并工作簿
- sqrt函数java_Java BigDecimal sqrt()用法及代码示例
- VUE-amap遇到的坑和总结
- 并查集算法 | Union-Find Algorithm
- Python_4_内置结构-元组-字符串-bytes-bytearray-切片