`

Play上写单元测试实践

阅读更多

写在前面

TDD,是最难在团队中推行的XP实践,有以下的原因

1、TDD需要调整个人开发的过程,从 code - test - debug 变成 test - code,改变了个人开发习惯,要知道,习惯是最难改变的

2、TDD耗时间(暂且不论对还是不对)

3、不写单元测试对项目没有立杆见影的坏影响(或者有了,但是不会有人觉察)

 

  那,这么多的缺点,为什么还是这么多人推荐TDD呢?因为TDD带来的好处是敏捷开发需要的:

敏捷只需要适度的设计,通过不断的重构达成完美的程序,而重构就需要单元测试这根保险绳。

 

在目前国内的研发团队中,真正能采用TDD的团队还不多,有些是因为项目组不要求,有些是因为难以推行而中止。

 

其实,只要踏出第一步,你或许会被单元测试迷住,喜欢上那种绿色代表的安稳的感觉。

下面,我介绍一下在我们项目中写的单元测试的情况

 

Play的三种测试

Play集成了Junit和Selenium作为单元测试的框架。

 

Unit test

 

public class AModelTest extends UnitTest {
    @Before
    public void before() {
        
    }

    @After
    public void after() {

    }

    @Test
    public void testInsert() {
   }
}
 

 

  unit test使用Junit框架进行编写,一般使用unit test进行model层的单元测试代码编写。

 

Functional test

  控制器层用Functional test进行测试

 

import play.test.*;
import play.mvc.*;
import play.mvc.Http.*;
import org.junit.*;
 
public class ApplicationTest extends FunctionalTest {
     
    @Test
    public void testTheHomePage() {
        Response response = GET("/");
        assertStatus(200, response);
    }
     
}
 

 

Selenium test

  selenium是一个可以直接调用浏览器进行测试的一个测试框架,在Play上可以用selenium进行页面的自动化测试。

下面是selenium的一个代码例子:

 

#{selenium 'Test security'}
 
    // Try to log in the administration area
    clearSession()
    open('/admin')
    assertTextPresent('Login')
    type('login', 'admin')
    type('password', 'secret')
    clickAndWait('signin')
 
    // Verify that the user in correctly logged in
    assertText('success', 'Welcom admin!')
 
#{/selenium}
 

 

 

运行测试

 

  使用play test 运行项目

  访问http://ip:端口/@tests

 

  play的测试运行页面会把以上三种测试类型的测试在页面中列出来,在页面中可以直接运行。

分享到:
评论

相关推荐

    play开发手册,数据库开发,配置,单元测试,定时任务等相关文档

    在敏捷开发中,单元测试是非常重要的部分。Play提供了内置的测试框架,支持JUnit和Specs2。手册会指导如何编写和运行测试,包括控制器测试、模型测试和模板测试,以及如何使用Mock对象进行隔离测试。 5. **定时...

    play测试案例

    总结来说,这个压缩包中的"play测试案例"是一个介绍如何在Play框架中进行单元测试和集成测试的项目。通过学习这个案例,我们可以了解如何创建和运行针对Controller的测试,以及如何利用Play提供的测试工具来确保代码...

    人教精通版小学英语四年级上册第二单元测试题.doc

    【人教精通版小学英语四年级上册第二单元测试题详解】 在小学英语教育中,四年级是一个重要的阶段,学生开始接触更为系统和深入的英语学习。人教精通版教材以其丰富的教学内容和科学的教学方法,深受广大师生喜爱。...

    人教PEP版三年级上册小学英语 Unit 1 单元测试卷(含听力音频).docx

    总结,这份人教PEP版三年级上册小学英语Unit 1的单元测试卷,旨在通过多种题型综合考察学生的英语听力、口语、阅读、写作和词汇等方面的能力,帮助他们扎实掌握基础英语知识,提高实际运用英语进行交际的技能。

    play的压缩包

    在开发过程中,Play框架提供了丰富的命令行工具,如`play console`用于交互式的控制台操作,`play test`用于运行项目中的单元测试,`play compile`用于编译源代码,以及`play run`用于启动开发服务器。这些工具极大...

    Play Framework2本教程

    6. **测试支持**:Play提供了内置的测试工具,如FakeRequest和TestBrowser,使得编写单元测试和集成测试变得简单。此外,它可以与JUnit、ScalaTest等第三方测试库无缝集成。 7. **热加载**:在开发过程中,Play的热...

    play framework 框架手册 word 版

    11. **测试**:Play提供了丰富的测试工具,包括单元测试、功能测试和Selenium测试,还有Fixtures和自动化测试的集成。 12. **安全**:手册强调了安全性的重要性,涵盖了Session管理、防止XSS、SQL注入和CSRF等安全...

    play framework 学生信息管理系统

    8. **测试**:Play Framework 提供了集成测试工具,如`play-test`模块,便于编写单元测试和集成测试,确保应用的稳定性和正确性。 9. **国际化(Internationalization, i18n)**:Play支持多语言应用,可以通过配置...

    沪教牛津版五年级上册小学英语Module 2单元测试卷(含听力文件).docx

    【知识点】 ...总结:这个沪教牛津版五年级上册小学英语Module 2单元测试卷全面涵盖了英语听、说、读、写的基本技能,重点在于听力理解、词汇掌握、语法运用和日常对话实践,旨在帮助学生提升综合英语能力。

    Play Framework Cookbook

    - **单元测试与集成测试**:高质量的应用离不开完善的测试。本书介绍了 Play Framework 中集成的测试框架,以及如何编写有效的测试用例来确保代码质量。 - **数据库交互**:Play Framework 内置了 Ebean ORM 工具,...

    Play Framework Cookbook.pdf

    - **测试与部署**:介绍单元测试、集成测试的方法,以及如何将应用部署到生产环境中。 - **技术亮点**: - **异步处理**:书中通过多个示例展示了如何利用 Play Framework 的异步处理能力提高应用性能。 - **...

    play框架jar包,版本play-1.2.7

    5. **集成测试**:Play框架内置了强大的测试工具,支持单元测试、集成测试和功能测试。开发者可以通过简单的API编写测试用例,框架会自动处理依赖注入和上下文设置。 6. **全局状态管理**:Play不提倡使用session...

    play_test:用于测试的存储库

    在`play_test`存储库中,我们可以找到与Play Framework相关的测试代码和示例,帮助开发者学习如何对Play应用进行单元测试、集成测试和端到端测试。 2. **单元测试**: 单元测试是针对应用程序中的最小可测试单元,...

    Play Framework Essentials

    - **测试**:了解Play提供的测试工具和测试策略,编写单元测试和集成测试。 - **部署**:掌握如何将应用程序部署到不同的服务器或云平台。 #### Play框架与其它Java Web框架的比较 - **Spring MVC**:传统企业级...

    大话移动APP测试 Android与iOS应用测试指南

    6. **自动化测试**:介绍使用如JUnit、Espresso等工具进行单元测试和UI自动化测试的方法。 7. **兼容性套件测试(CTS)**:对于Android开发者,了解并执行CTS测试是确保应用符合Google Play Store发布标准的关键...

    play_入门学习手册

    支持JUNIT单元测试。可以在test包下创建一个测试类,如UserTest,继承`UnitTest`,并使用`@Test`注解定义测试方法。通过`play test`命令启动测试,然后在浏览器中访问`http://localhost:9000/@tests`来运行和查看...

    OA.rar_Oaplay_play_play framework_play框架_审批

    4. **内置测试支持**:Play提供了丰富的测试工具,如play-test模块,方便进行单元测试和集成测试,确保代码质量。 5. **强大的路由系统**:通过配置路由文件,可以灵活地定义URL到控制器方法的映射,同时支持...

    新目标英语八下册Unit 1-5单元测试卷和答案18精选.doc

    总结来说,这份“新目标英语八下册Unit 1-5单元测试卷和答案18精选”是针对初二下学期英语教学的重要参考资料,它不仅包含了丰富的语言知识点,还体现了教学的实践性和实用性,对于提高学生的英语水平具有显著作用。

    牛津7B Unit 5单元测试题.doc

    【牛津7B Unit 5单元测试题】涵盖了英语词汇、语法、句型转换和对话实践等多个知识点。以下是对这些内容的详细解析: 一、单词填空 1. expensive - 指东西价格过高。 2. cost - 表示某物花费了多少钱。 3. discount...

    外研版三起五年级英语(下册)单元测试题.doc

    这个单元测试全面覆盖了英语学习中的词汇、语法、阅读理解等多个方面,旨在帮助学生巩固课堂所学,并通过实践提升他们的英语水平。学生在完成这样的测试后,应能更好地理解并运用英语进行日常交流和学习。

Global site tag (gtag.js) - Google Analytics