`
schy_hqh
  • 浏览: 552527 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

(十)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 framework测试项目

    在这个"play framework测试项目"中,我们可以深入学习Play Framework的基本结构和工作原理。 首先,Play Framework的核心特性之一是它的MVC(模型-视图-控制器)架构模式。在MVC模式下,应用被划分为三个主要部分:...

    新建play框架项目.pdf

    在本教程中,我们将深入理解如何使用Play框架创建一个完整的Web项目,以一个博客应用为例,名为Yabe(Yet Another Blog Engine)。 首先,确保你的计算机已经安装了Java 5或更高版本,因为Play框架依赖于Java环境。...

    yabe:另一个博客引擎-Curso Play 1.3.1

    综上所述,"yabe:另一个博客引擎 - Curso Play 1.3.1"涉及到使用Java语言和Play框架开发的一个博客引擎项目。通过学习这个课程或教程,开发者可以了解如何使用Play框架构建Web应用,并可能涉及数据库集成、模板引擎...

    play框架教程前6章

    创建一个新的Play应用,只需在命令行输入`play new yabe`,然后按照提示输入应用的全名,如"Yet Another Blog Engine"。这将生成一个名为yabe的目录,包含了标准的工程结构: 1. `App/`:包含应用程序的核心代码,...

    学习BACnet/IP协议所使用的Yabe和VTS工具

    3. **数据读写**:Yabe允许用户读取或写入对象的属性值,这对于测试和调试设备功能非常有用。 4. **事件订阅**:Yabe支持订阅设备的事件,例如状态变化,从而实时监控设备动态。 5. **配置文件导出**:可以将设备...

    yabe:另一个博客引擎(Play Framework 1.3.x)

    矢部 另一个博客引擎(Play Framework 1.3.x)

    yabe:另一个后端库

    yabe:另一个后端库

    免费的BACnet测试工具

    BACnetScan是由上海迅饶自动化科技有限公司自主研发的BACnet客户端扫描软件 ,该软件同时具备BACnetIP和BACnetMS/TP扫描功能,并且具有读属性、写当前值属性、和导出EXCEL等功能。在PC上安装此软件,通过IP协议和...

    Yet Another Bacnet Explorer:Yabe-BACnet设备的图形资源管理器程序-C#代码-开源

    Raspberry Pi服务器示例代码,也已在Beaglebone和Intel Edison上进行了测试。 Bacnet / Mstp捕获工具(仅需要Wireshark和Rs485适配器)有关更多信息,请参见Readme.txt。 开发人员/贡献者团队:Morten Kvistgaard...

    Play框架7版本教程-数据模型的首次迭代.doc

    User类应该位于`/yabe/app/models/User.java`,并使用`@Entity`注解来声明这是一个JPA实体。`@Entity`告诉JPA框架这个类应该被当作数据库表来处理。此外,User类扩展了`play.db.jpa.Model`类,这个类提供了一些辅助...

    yabe_sql:剧本1.3.x教程紧随其后

    由于只有一个文件名 "yabe_sql-master",这通常表示这是一个Git仓库的主分支名称,可能包含了项目的源代码、文档、测试等资源。"master" 分支通常是开发的主要分支,意味着这里可能有项目的最新、最稳定版本。 ...

    BACnet常用的开发工具,包括点位扫描工具,主站模拟工具以及抓包分析工具

    一些常用的BACnet点位扫描工具包括Yabe,BACnetscan 等。 BACnet主站模拟工具:主站模拟工具用于模拟BACnet主站的功能,以便测试和验证设备的响应和行为。它们允许开发人员发送和接收BACnet命令和数据,并模拟不同的...

    BACnet设备Socket UDP通信源码

    通过理解和研究这个源码,开发者可以更好地了解如何在实际项目中实现BACnet设备之间的通信,提高楼宇自动化的互操作性和效率。然而,由于BACnet协议的复杂性,初学者可能需要花费一定时间来熟悉其细节。希望这个源码...

    yabe-online-mall.github.io

    "矢部网上商城"是一个基于GitHub Pages部署的在线商城项目,其源代码托管在"yabe-online-mall.github.io"的仓库中。这个项目主要利用HTML(HyperText Markup Language)来构建网页结构,展示了如何使用基本的Web技术...

    BacNet协议应用软件

    "Yet Another BACnet Explorer"(YABE)是一个用于探索和测试BACnet网络的开源工具。它允许用户通过图形用户界面与BACnet设备进行交互,例如查看设备信息、读取和写入对象属性、订阅事件通知等。YABE的源代码对于...

    SetupYabe_v1.1.9.exe

    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, ...

    bacnet-IP C#版本

    至于压缩包中的"YaBe"文件,可能是源代码、文档或者示例项目。由于信息不全,无法确定其具体内容,但可以推测这可能是实现Bacnet-IP协议的C#代码库,或者是包含详细说明和使用示例的文档。开发者可能需要将这些文件...

    YABE - Yet Another Bookmarks Extension-crx插件

    语言:English 更好的书签弹出窗口 功能:1.左键单击​​可在新选项卡中打开书签。 2.单击鼠标中键或Ctrl键并单击以在新的背景选项卡中打开书签。 3.通过打开另一个文件夹来关闭所有打开的文件夹。...

Global site tag (gtag.js) - Google Analytics