项目测试
一个项目,首先得经过一系列的测试(开发人员自测,专门的测试人员测试,客户测试)才能上线运行。
尽早发现问题对大家都有好处,作为一个开发人员,自己写的代码最好充分自测后再提交测试。
测试从不同业务层面分:
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 framework测试项目"中,我们可以深入学习Play Framework的基本结构和工作原理。 首先,Play Framework的核心特性之一是它的MVC(模型-视图-控制器)架构模式。在MVC模式下,应用被划分为三个主要部分:...
在本教程中,我们将深入理解如何使用Play框架创建一个完整的Web项目,以一个博客应用为例,名为Yabe(Yet Another Blog Engine)。 首先,确保你的计算机已经安装了Java 5或更高版本,因为Play框架依赖于Java环境。...
在CMD中运行`play new yabe`,然后进入项目目录并执行`play run`启动项目。在浏览器输入`http://localhost:9000`,如果看到项目启动成功,说明配置完成。若要将项目转换为Eclipse项目,可以使用`play eclipsify`命令...
综上所述,"yabe:另一个博客引擎 - Curso Play 1.3.1"涉及到使用Java语言和Play框架开发的一个博客引擎项目。通过学习这个课程或教程,开发者可以了解如何使用Play框架构建Web应用,并可能涉及数据库集成、模板引擎...
创建一个新的Play应用,只需在命令行输入`play new yabe`,然后按照提示输入应用的全名,如"Yet Another Blog Engine"。这将生成一个名为yabe的目录,包含了标准的工程结构: 1. `App/`:包含应用程序的核心代码,...
3. **数据读写**:Yabe允许用户读取或写入对象的属性值,这对于测试和调试设备功能非常有用。 4. **事件订阅**:Yabe支持订阅设备的事件,例如状态变化,从而实时监控设备动态。 5. **配置文件导出**:可以将设备...
矢部 另一个博客引擎(Play Framework 1.3.x)
yabe:另一个后端库
一些常用的BACnet点位扫描工具包括Yabe,BACnetscan 等。 BACnet主站模拟工具:主站模拟工具用于模拟BACnet主站的功能,以便测试和验证设备的响应和行为。它们允许开发人员发送和接收BACnet命令和数据,并模拟不同的...
BACnetScan是由上海迅饶自动化科技有限公司自主研发的BACnet客户端扫描软件 ,该软件同时具备BACnetIP和BACnetMS/TP扫描功能,并且具有读属性、写当前值属性、和导出EXCEL等功能。在PC上安装此软件,通过IP协议和...
Raspberry Pi服务器示例代码,也已在Beaglebone和Intel Edison上进行了测试。 Bacnet / Mstp捕获工具(仅需要Wireshark和Rs485适配器)有关更多信息,请参见Readme.txt。 开发人员/贡献者团队:Morten Kvistgaard...
Currently supports both BACnet IPv4, IPv6 + BACnet MSTP + BACnet PTP + BACnet Ethernet. Basic functions for read, write, read multiple, write multiple, iam, whois, subscribeCOV, notify, WriteFile, ...
User类应该位于`/yabe/app/models/User.java`,并使用`@Entity`注解来声明这是一个JPA实体。`@Entity`告诉JPA框架这个类应该被当作数据库表来处理。此外,User类扩展了`play.db.jpa.Model`类,这个类提供了一些辅助...
由于只有一个文件名 "yabe_sql-master",这通常表示这是一个Git仓库的主分支名称,可能包含了项目的源代码、文档、测试等资源。"master" 分支通常是开发的主要分支,意味着这里可能有项目的最新、最稳定版本。 ...
软件平台:stm32cubemx keil5 使用hal库生成基础代码,然后添BACnet mtsp部分,已经成功和电脑BACnet模拟软件Yabe通讯成功。 硬件平台:基于正点原子stm32f407探索者开发板硬件。
通过理解和研究这个源码,开发者可以更好地了解如何在实际项目中实现BACnet设备之间的通信,提高楼宇自动化的互操作性和效率。然而,由于BACnet协议的复杂性,初学者可能需要花费一定时间来熟悉其细节。希望这个源码...
"矢部网上商城"是一个基于GitHub Pages部署的在线商城项目,其源代码托管在"yabe-online-mall.github.io"的仓库中。这个项目主要利用HTML(HyperText Markup Language)来构建网页结构,展示了如何使用基本的Web技术...
"Yet Another BACnet Explorer"(YABE)是一个用于探索和测试BACnet网络的开源工具。它允许用户通过图形用户界面与BACnet设备进行交互,例如查看设备信息、读取和写入对象属性、订阅事件通知等。YABE的源代码对于...
BACnetScan是由上海迅饶自动化科技有限公司自主研发的BACnet客户端扫描软件 ,该软件同时具备BACnetIP和BACnetMS/TP扫描功能,并且具有读属性、写当前值属性、和导出EXCEL等功能。在PC上安装此软件,通过IP协议和...