使用phpunit测试yaf项目操作步骤
yaf + phpunit
使用phpunit对yaf进行测试的核心在于bootstrip文件的配置。
*1. 首先在项目目录下创建tests文件,并在tests中创建phpunit.xml
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
colors="true"
syntaxCheck="true"
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/5.7/phpunit.xsd" bootstrap="./bootstrap.php"
>
<testsuites>
<testsuite name="controller">
<directory>./application/controllers/*Test.php</directory>
</testsuite>
<testsuite name="models">
<directory>./application/models/*Test.php</directory>
</testsuite>
</testsuites>
<logging>
<log type="coverage-html" target="./report" charset="UTF-8"/>
</logging>
</phpunit>
*2. 然后就是编写phpunit的bootstrap,新增bootstrap.php文件中,在其中增加即可
<?php
define("APP_PATH", realpath(dirname(__FILE__) . '/../'));
*3. 根据需要创建相应的目录。我创建的目录为
```
|-- application
| |-- BaseCase.php
| |-- controllers
| | -- EmailTest.php | -- models
|-- bootstrap.php
|-- phpunit.xml
```
*4. 在application/controllers/中创建EmailTest.php文件,这就是controller测试文件; 在application/models/ 中创建model文件,进行model数据测试。
*5. BaseCase.php是一个父类,在这个类中做的功能有两部分
1. yaf项目中bootstrip文件配置的加载,其实就类似于复制一份项目中bootstrip的一些方法,放到此处,比如config配置,路由等;
2. 普通的一些方法,比如get、post请求。
```
```php
<?php
use PHPUnit\Framework\TestCase;
use Illuminate\Database\Capsule\Manager as Capsule;
class BaseCase extends TestCase
{
public $application;
public function __construct(){
parent::__construct();
$this->_init();
}
/**
* init
*/
public function _init()
{
if (!Yaf_Registry::get('config')) {
$this->application = new Yaf_Application(APP_PATH . "/conf/application.ini");
$config = Yaf_Application::app()->getConfig();
Yaf_Registry::set('config',$config);
echo "\n当前环境:" . Yaf_Application::app()->getConfig()->env. "\n";
$this->_loader();
$this->_iniDatabase();
// disableView
Yaf_dispatcher::getInstance()->disableView();
}
}
/**
* loader
*/
public function _loader()
{
Yaf_Loader::import(APP_PATH . "/application/function.php");
Yaf_Loader::import(APP_PATH . "/vendor/autoload.php");
}
/**
* GET 请求
*/
public function getRequest($url)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT_MS, 200);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
/**
* POST 请求
*/
public function postRequest($url, $params)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT_MS, 200);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
}
```
*6. controllers和models中的文件可以加载文件,做文件映射,进行正常操作访问请求了。
models中的操作
<?php
require_once APP_PATH . "/tests/application/BaseCase.php";
class BlogTest extends BaseCase
{
public function __construct()
{
parent::__construct();
$this->_model = new BlogModel();
$this->_audit_model = new AuditModel();
}
public function test_getAuditLists()
{
$data = $this->_audit_model->getAuditLists();
$this->assertNotEmpty($data);
}
}
controllers中的操作,其实就是get、post请求了,没什么不同的。因为controllers测试,只能是post、get请求,所以只能是测试Action方法,里面的非Action结束的方法,是不能进行测试的。只能打日志进行记录,查看执行结果。
*7. 到此结束。
使用phpunit测试yaf项目操作步骤的更多相关文章
- monkey测试 -- 原理和操作步骤
Monkey测试原理: Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中.它向系统发送伪随机的用户事件流(如按键输入.触摸屏输入.手势输入等),实现对正在开发的应用程序 ...
- Git:上传GitHub项目操作步骤
git教程:git详解.gitbook #首次上传步骤 首先在工程文件位置处右键git bash here 本地创建ssh key $ ssh-keygen -t rsa -C "your_ ...
- 将项目Demo上传到Github上的操作步骤
之前我有很多代码直接上传到了CSDN上,主要是因为操作方便,今天我就说说将源码Demo上传到Github上的操作步骤. 首先,你要先确定自己在Github上有自己的账户名,账户邮箱和密码.如果没有可以 ...
- 版本控制之五:SVN trunk(主线) branch(分支) tag(标记) 用法详解和详细操作步骤(转)
使用场景: 假如你的项目(这里指的是手机客户端项目)的某个版本(例如1.0版本)已经完成开发.测试并已经上线了,接下来接到新的需求,新需求的开发需要修改多个文件中的代码,当需求已经开始开发一段时间的时 ...
- SVN trunk(主线) branch(分支) tag(标记) 用法详解和详细操作步骤
使用场景: 假如你的项目(这里指的是手机客户端项目)的某个版本(例如1.0版本)已经完成开发.测试并已经上线了,接下来接到新的需求,新需求的开发需要修改多个文件中的代码,当需求已经开始开发一段时间的时 ...
- monkey测试入门2--测试步骤、常用参数、常规monkey命令
<凤栖梧> 柳永 伫倚危楼风细细,望极春愁,黯然生天际.草色烟光残照里,无言谁会凭栏意? 拟把疏狂图一醉,对酒当歌,强乐还无味,衣带渐宽终不悔,为伊消得人憔悴. 简要步骤:adb devi ...
- Springboot集成Swagger操作步骤
特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...
- vue-cli项目创建步骤
vue-cli项目创建步骤: 1.cmd打开命令行窗口 2.输入cnpm install vue-cli -g,然后回车等待(想在哪个目录建立vue项目就要在进入到对应目录再输入命令) 3.安装结束后 ...
- ABP创建数据库操作步骤
1 ABP创建数据库操作步骤 1.1 SimpleTaskSystem.Web项目中的Web.config文件修改数据库配置. <add name="Default" pro ...
随机推荐
- 递归与动态规划II-汉诺塔
题目描述 有一个int数组arr其中只含有1.2和3,分别代表所有圆盘目前的状态,1代表左柱,2代表中柱,3代表右柱,arr[i]的值代表第i+1个圆盘的位置.比如,arr=[3,3,2,1],代表第 ...
- 最近在学习Flask框架,那么就说下jinja2吧~~~
jinja是组成Flask的模板引擎,先写一个demo吧 {% block body %} <ul> {% for user in users %} <li><a hre ...
- tomcat web漏洞整改--Apache Tomcat examples directory vulnerabilities
在利用AWVS等弱扫工具对网站进行漏洞扫描时,经常会出现一些Tomcat漏洞问题,一般在弱扫报告中,都会给出简单的处理办法,但有时这些办法可能不太适合我们,或者在一些正式使用的环境中,不好操作,那么我 ...
- 添加宿主为控制台应用程序的WCF服务
1.创建WCF服务库:WcfServiceLibrary,根据自动创建的代码修改自己的WCF 服务协议.操作协议.数据协议.本次先实现简单的WCF最基本的通信方式:请求->应答模式. 定义服务. ...
- Sharepoint 2016 配置FBA(二) 编辑Web,config文件
使FBA生效,下一步在Sharepoint中设置Membership Provider,一个Membership Provider是一个从程序到任证库(credential store)的接口.这样允 ...
- sqlserver智能提示插件-sql prompt(9.4.6)的安装及注册流程
官网下在地址:https://www.red-gate.com/products/sql-development/sql-prompt/ CSDN下载地址(对应的版本是9.4.6,其中包含安装包和注册 ...
- 将一个float型转化为内存存储格式的步骤
将一个float型转化为内存存储格式的步骤为: (1)先将这个实数的绝对值化为二进制格式. (2)将这个二进制格式实数的小数点左移或右移n位,直到小数点移动到第一个有效数字的右边. (3)从小数点右边 ...
- 周强 201771010141《面对对象程序设计(java)》第十周学习总结
---恢复内容开始--- 1.实验目的与要求 (1) 理解泛型概念: (2) 掌握泛型类的定义与使用: (3) 掌握泛型方法的声明与使用: (4) 掌握泛型接口的定义与实现: (5)了解泛型程序设计, ...
- Python Django install Error
Exception:Traceback (most recent call last): File "/home/djangogirls/myvenv/lib/python3.6/site ...
- ChIP-seq基本流程及工具
ChIP-seq数据分析整理 1.Alignment 2.Peak detection 3.Peak annotation 1. GO analysis 2. Pathway analysis 4.D ...