首页 后端开发 php教程 Yii框架官方指南系列增补版40——测试:功能测试(Functional Testing )

Yii框架官方指南系列增补版40——测试:功能测试(Functional Testing )

Feb 16, 2017 am 09:13 AM



在阅读本章节之前, 强烈推荐你先阅读Selenium文档和 PHPUnit文档. 下面我们简要概述在Yii框架中编写功能测试的基本原则:

  • 和单元测试一样, 功能测试以继承子自CWebTestCase的XyzTest类的形式编写, 其中 Xyz 代表被测试的类. 由于 PHPUnit_Extensions_SeleniumTestCase 是 CWebTestCase的祖先类, 我们我们可以从这个类中继承所有方法.

  • 功能测试类以XyzTest.php的形式保存在PHP文件中.方便起见, 功能测试文件通常保存在 protected/tests/functional文件夹下.

  • 测试类主要包含一系列命名为testAbc的测试方法, 其中 Abc 通常是要测试的特性的名字,例如, 想要测试用户登录功能, 我们可能会有一个命名为 testLogin的测试方法.

  • 测试方法包含一系列的用于测试 Selenium RC和web应用之间进行交互的命令语句. 它还包含用于确认我们所期望的web应用回复的断言语句.

在描述如何写一个功能测试之前, 我们先看看通过yiic webapp命令自动生成的 WebTestCase.php 文件。这个文件定义了作为所有功能测试类的基类 WebTestCase:

define('TEST_BASE_URL','http://localhost/yii/demos/blog/index-test.php/');

class WebTestCase extends CWebTestCase
{
    /**
     * Sets up before each test method runs.
     * This mainly sets the base URL for the test application.
     */
    protected function setUp()
    {
        parent::setUp();
        $this->setBrowserUrl(TEST_BASE_URL);
    }

    ......
}
登录后复制

WebTestCase主要设置了测试页面的根 URL,后面在测试方法中我们可以使用相对URLs来指定要测试的页面。

我们还要注意,在测试根 URL中, 使用了 index-test.php 作为入口脚本而不是 index.php. 两者之间的唯一不同就是前者使用test.php作为应用配置文件,而后者使用的是 main.php.

现在我们开始讲述测试在blog演示中如何测试显示一篇文章这一功能特性. 首先编写如写的测试类, 注意测试类继承自我们上面所述的基类 WebTestCase:

class PostTest extends WebTestCase
{
    public $fixtures=array(
        'posts'=>'Post',
    );

    public function testShow()
    {
        $this->open('post/1');
        // verify the sample post title exists
        $this->assertTextPresent($this->posts['sample1']['title']);
        // verify comment form exists
        $this->assertTextPresent('Leave a Comment');
    }

    ......
}
登录后复制

和编写单元测试一样,我们首先声明了本测试所用到的特定状态( fixtures).这里我们指定使用 Post fixture. 在 testShow 测试方法中, 我们首先使用 Selenium RC 打开 URL post/1.注意这是一个相对 URL, 完整的 URL 是拼接了基类中的根URL (i.e. http://www.php.cn/). 然后我们验证是否可以在当前页面中找到sample1 post 的title. 我们还可以验证这个页面是否包含文本 Leave a Comment.

Tip: 在运行功能测试之前, Selenium-RC server 要先启动. 这可以通过在你的Selenium server安装目录下执行命令 java -jar selenium-server.jar 来实现。

 以上就是Yii框架官方指南系列增补版40——测试:功能测试(Functional Testing )的内容,更多相关内容请关注PHP中文网(www.php.cn)!


本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

PHP中如何使用Yii框架 PHP中如何使用Yii框架 Jun 27, 2023 pm 07:00 PM

随着Web应用程序的快速发展,现代Web开发已成为一项重要技能。许多框架和工具可用于开发高效的Web应用程序,其中Yii框架就是一个非常流行的框架。Yii是一个高性能、基于组件的PHP框架,它采用了最新的设计模式和技术,提供了强大的工具和组件,是构建复杂Web应用程序的理想选择。在本文中,我们将讨论如何使用Yii框架来构建Web应用程序。安装Yii框架首先,

Yii框架中的RESTful API开发 Yii框架中的RESTful API开发 Jun 21, 2023 pm 12:34 PM

Yii是一款基于PHP的高性能MVC框架,它提供了非常丰富的工具和功能,支持快速、高效地开发Web应用程序。其中,Yii框架的RESTfulAPI功能得到了越来越多开发者的关注和喜爱,因为使用Yii框架可以非常方便地构建出高性能、易扩展的RESTful接口,为Web应用的开发提供了强有力的支持。RESTfulAPI简介RESTfulAPI是一种基于

使用Yii框架实现网页缓存和页面分块的步骤 使用Yii框架实现网页缓存和页面分块的步骤 Jul 30, 2023 am 09:22 AM

使用Yii框架实现网页缓存和页面分块的步骤引言:在Web开发过程中,为了提高网站的性能和用户体验,常常需要对页面进行缓存和分块处理。Yii框架提供了强大的缓存和布局功能,可以帮助开发者快速实现网页缓存和页面分块,本文将介绍如何使用Yii框架进行网页缓存和页面分块的实现。一、网页缓存开启网页缓存在Yii框架中,可以通过配置文件来开启网页缓存。打开主配置文件co

GitLab的集成测试功能及常见用例 GitLab的集成测试功能及常见用例 Oct 21, 2023 am 10:49 AM

GitLab的集成测试功能及常见用例【引言】在软件开发过程中,测试是不可或缺的环节之一。在持续集成和持续交付的开发环境下,集成测试起到了至关重要的作用。而GitLab作为广受欢迎的代码托管平台,不仅提供了版本管理和协作工具,同时也提供了丰富的集成测试功能。本文将详细介绍GitLab的集成测试功能,并提供常见的测试用例和代码示例。【GitLab集成测试功能】G

使用Yii框架创建游戏攻略网站 使用Yii框架创建游戏攻略网站 Jun 21, 2023 pm 01:45 PM

近年来,随着游戏行业的快速发展,越来越多的玩家开始寻找游戏攻略来帮助游戏过关。因此,创建一个游戏攻略网站可以让玩家们更加方便地获取游戏攻略,同时也能为玩家提供更好的游戏体验。在创建这样一个网站时,我们可以使用Yii框架来进行开发。Yii框架是一个基于PHP编程语言的Web应用开发框架。它具有高效、安全、扩展性强等特点,可以为我们更快速、高效地创建一个游戏攻略

php代码测试功能的使用技巧与经验分享 php代码测试功能的使用技巧与经验分享 Aug 10, 2023 am 09:25 AM

PHP代码测试功能的使用技巧与经验分享在开发PHP应用程序时,代码测试是非常重要的环节。通过代码测试可以检查和验证代码的正确性,确保程序的稳定运行。本文将介绍一些PHP代码测试的使用技巧和经验,帮助开发人员更好地进行代码测试。使用单元测试框架单元测试是针对程序中各个独立功能模块进行的测试。使用单元测试框架可以简化测试过程,并提供一些强大的断言和测试结果报告生

使用Yii框架中间件加密和解密敏感数据 使用Yii框架中间件加密和解密敏感数据 Jul 28, 2023 pm 07:12 PM

使用Yii框架中间件加密和解密敏感数据引言:在现代的互联网应用中,隐私和数据安全是非常重要的问题。为了确保用户的敏感数据不被未经授权的访问者获取,我们需要对这些数据进行加密。Yii框架为我们提供了一种简单且有效的方法来实现加密和解密敏感数据的功能。在本文中,我们将介绍如何使用Yii框架的中间件来实现这一目标。Yii框架简介Yii框架是一个高性能的PHP框架,

Yii框架中间件:为应用程序添加日志记录和调试功能 Yii框架中间件:为应用程序添加日志记录和调试功能 Jul 28, 2023 pm 08:49 PM

Yii框架中间件:为应用程序添加日志记录和调试功能【引言】在开发Web应用程序时,我们通常需要添加一些附加功能以提高应用的性能和稳定性。Yii框架提供了中间件的概念,使我们能够在应用程序处理请求之前和之后执行一些额外的任务。本文将介绍如何使用Yii框架的中间件功能来实现日志记录和调试功能。【什么是中间件】中间件是指在应用程序处理请求之前和之后,对请求和响应做

See all articles