热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

phpthinkphp配置,[PHP]ThinkPHP配置PHPUnit

版本描述PHP:5.3PHPUnitThinkPHP3.1.3IDE:PHPStorm10(推荐)PHPStorm配置PHPUnit详见博文:ThinkPHP部署官方

版本描述

PHP: 5.3

PHPUnit

ThinkPHP 3.1.3

IDE: PHPStorm 10 (推荐)

PHPStorm配置PHPUnit

详见博文:

ThinkPHP部署

官方代码下载:

初始化站点:

测试用例

本例中,根目录的index.php的配置如下:

define('APP_NAME', 'example');

define('APP_PATH', '../example/');

define('APP_PHPUNIT', false);

define('APP_DEBUG', true);

require('../ThinkPHP/ThinkPHP.php');

?>

首次访问之后,生成以下目录结构:

d4adc3e9457138c89d720b59c74d8cc6.gif

在example站点中新建文件夹,命名为“Testcase”。

测试Model

创建HelloModel.class.php:

class HelloModel extends Model

{

public function sayHello()

{

print 'Hello';

return 'Hello';

}

}

在Test文件夹中新建Test.php文件作为PHPUnit,其中注意require ThinkPHP作为初始化框架环境,另外在Think.class.php中,修改

start()函数中,App::run()为!APP_PHPUNIT && App::run();

该区分站点运行与测试用例。

d4adc3e9457138c89d720b59c74d8cc6.gif

define('APP_NAME', 'example');

define('APP_PATH', './../../example/');

define('APP_PHPUNIT', true);

require('./../../ThinkPHP/ThinkPHP.php');

class TestSayHello extends PHPUnit_Framework_TestCase {

public function setUp() { }

public function tearDown(){ }

}

在TestSayHello中加入测试用例:

public function testHelloModel()

{

$hello = D('Hello');

$this->assertTrue( $hello->sayHello('Hello') == 'Hello');

}

测试Action

修改IndexAction.class.php如下:

class IndexAction extends Action

{

public function index()

{

$hello = D("Hello");

return $hello->sayHello();

}

}

浏览器访问Index效果:

d4adc3e9457138c89d720b59c74d8cc6.gif

在TestSayHello中加入测试用例:

public function testHelloAction()

{

$hello = new IndexAction();

$this->assertTrue($hello->index() == 'Hello');

}

运行效果

运行Test.php效果如下:

d4adc3e9457138c89d720b59c74d8cc6.gif

Test通过,至此给ThinkPHP加上了单元测试。

照着试了下,发现model无法使用,Common目录下自定义的一些函数也没有加载。研究了一下,觉得在Think.class.php中加APP_PHPUNIT的判断不太合理,不如在App.class.php中,在这儿添加: !APP_PHPUNIT && App::exec();



推荐阅读
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • 使用圣杯布局模式实现网站首页的内容布局
    本文介绍了使用圣杯布局模式实现网站首页的内容布局的方法,包括HTML部分代码和实例。同时还提供了公司新闻、最新产品、关于我们、联系我们等页面的布局示例。商品展示区包括了车里子和农家生态土鸡蛋等产品的价格信息。 ... [详细]
  • 后端开发|php教程apache配置文件,thinkphp后端开发-php教程例如你的原路径是http:localhosttestindex.phpindexadd那么现在的地址是 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • IB 物理真题解析:比潜热、理想气体的应用
    本文是对2017年IB物理试卷paper 2中一道涉及比潜热、理想气体和功率的大题进行解析。题目涉及液氧蒸发成氧气的过程,讲解了液氧和氧气分子的结构以及蒸发后分子之间的作用力变化。同时,文章也给出了解题技巧,建议根据得分点的数量来合理分配答题时间。最后,文章提供了答案解析,标注了每个得分点的位置。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 在springmvc框架中,前台ajax调用方法,对图片批量下载,如何弹出提示保存位置选框?Controller方法 ... [详细]
  • 本文介绍了一个适用于PHP应用快速接入TRX和TRC20数字资产的开发包,该开发包支持使用自有Tron区块链节点的应用场景,也支持基于Tron官方公共API服务的轻量级部署场景。提供的功能包括生成地址、验证地址、查询余额、交易转账、查询最新区块和查询交易信息等。详细信息可参考tron-php的Github地址:https://github.com/Fenguoz/tron-php。 ... [详细]
  • 本文介绍了Python函数的定义与调用的方法,以及函数的作用,包括增强代码的可读性和重用性。文章详细解释了函数的定义与调用的语法和规则,以及函数的参数和返回值的用法。同时,还介绍了函数返回值的多种情况和多个值的返回方式。通过学习本文,读者可以更好地理解和使用Python函数,提高代码的可读性和重用性。 ... [详细]
  • MySQL多表数据库操作方法及子查询详解
    本文详细介绍了MySQL数据库的多表操作方法,包括增删改和单表查询,同时还解释了子查询的概念和用法。文章通过示例和步骤说明了如何进行数据的插入、删除和更新操作,以及如何执行单表查询和使用聚合函数进行统计。对于需要对MySQL数据库进行操作的读者来说,本文是一个非常实用的参考资料。 ... [详细]
  • 【重识云原生】第四章云网络4.8.3.2节——Open vSwitch工作原理详解
    2OpenvSwitch架构2.1OVS整体架构ovs-vswitchd:守护程序,实现交换功能,和Linux内核兼容模块一起,实现基于流的交换flow-basedswitchin ... [详细]
author-avatar
rare懿然
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有