`
schy_hqh
  • 浏览: 561380 次
  • 性别: 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

    在后续的教程中,我们将逐步学习如何在Yabe项目中添加数据验证、错误处理、权限管理、自动化测试、Web界面和国际化功能。Play框架提供了丰富的内置支持,使得开发者可以专注于业务逻辑,而不是基础设施的配置和管理...

    play_入门学习手册

    接着,通过`play new`命令创建一个新的项目,例如我们可以参考samples-and-tests目录下的yabe项目。在CMD中运行`play new yabe`,然后进入项目目录并执行`play run`启动项目。在浏览器输入`http://localhost:9000`,...

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

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

    play框架教程前6章

    Yabe的源代码可以在Play框架的samples-and-tests/yabe/目录下找到。 在开始之前,确保你已经安装了Java环境,版本至少为5.0。虽然这个教程可以在Windows上运行,但建议使用类Unix系统,因为涉及到许多命令行操作。...

Global site tag (gtag.js) - Google Analytics