(十)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,开始测试!

 

测试这部分暂时放一下,空了回来再学!

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值