PHP单元测试利器 PHPUNIT深入用法(二)第1/2页

   2015-11-15 0
核心提示:在上一篇PHP单元测试利器:PHPUNIT初探文章中,我们对phpunit有了一个初步的认识,在本文中将继续深入讲解下phpunit中的一些用法。
1、markTestSkipped和markTestIncomplete

  在phpunit中,有两个有用的方法markTestSkipped和markTestIncomplete。它们能允许你编写的单元测试中不单是只有通过和失败两种结果。markTestSkipped能让PHPUNIT不去执行某个已经编写好的测试方法。举个例子说明,比如下面的程序:

PHP单元测试利器 PHPUNIT深入用法(二)第1/2页<?php
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页
public function testThisMightHaveADb()
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页{
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页  
$myObject->createObject();
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页  
try {
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页    
$db = new Database();
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页    
$this->assertTrue($db->rowExists());
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页  }
catch (DatabseException $e) {
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页    
$this->markTestSkipped('This test was skipped because there was a database problem');
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页  }
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页}
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页
?>

   在上面的程序中,是一个连接数据库后,判断数据是否存在的测试方法,但如果考虑数据库的连接异常的话,则应该在抛出异常时,使用markTestSkipped指出该测试方法应该是被忽略的,因为出现了异常,而注意的时,此时有可能你写的代码是正确的,只不过是出现了异常而已,这样phpunit在输出时就不会只是简单的输出fail。

  而markTestIncomplete也有点类似,但有点不同的是,它是当开发者在编写一个未完成的测试方法时使用的,标记出某个测试方法还没编写完成,同样测试结果也不会是fail,只是告诉phpunit这个测试方法还没编写完成而已,例子如下:

PHP单元测试利器 PHPUNIT深入用法(二)第1/2页<?php
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页
public function testAreNotEnoughHours()
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页{
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页  
$this->markTestIncomplete("There aren't enough hours in the day to have my tests go green");
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页  
$trueVariable = true;
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页  
$this->assertTrue($trueVariable);
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页}
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页
?>

   2、更深入了解phpunit中的断言

  在上一篇文章中,已经基本讲解了一些基本的phpunit中的断言的使用,这里以一个例子,下面是一个类的代码:

PHP单元测试利器 PHPUNIT深入用法(二)第1/2页<?php
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页
class Testable
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页{
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页  
public $trueProperty = true;
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页  
public $resetMe = true;
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页  
public $testArray = array(
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页    
'first key' => 1,
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页    
'second key' => 2
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页  );
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页  
private $testString = "I do love me some strings";
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页  
public function __construct()
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页  {
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页  }
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页  
public function addValues($valueOne,$valueTwo) {
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页    
return $valueOne+$valueTwo;
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页  }
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页  
public function getTestString()
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页  {
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页    
return $this->testString;
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页  }
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页}
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页
?>

   我们编写的单元测试代码初步的框架如下:

PHP单元测试利器 PHPUNIT深入用法(二)第1/2页<?php
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页
class TestableTest extends PHPUnit_Framework_TestCase
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页{
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页  
private $_testable = null;
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页  
public function setUp()
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页  {
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页    
$this->_testable = new Testable();
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页  }
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页  
public function tearDown()
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页  {
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页    
$this->_testable = null;
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页  }
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页  
/** test methods will go here */
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页}
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页
?>

   在上一篇文章中,已经介绍了setUp方法和tearDown方法,这里的setUp方法中,建立了Testable()实例并保存在变量$_testable中,而在tearDown方法中,销毁了该对象。

  接下来,开始编写一些断言去测试,首先看assertTrue和assertFalase:

PHP单元测试利器 PHPUNIT深入用法(二)第1/2页<?php
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页
public function testTruePropertyIsTrue()
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页{
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页  
$this->assertTrue($this->_testable->trueProperty,"trueProperty isn't true");
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页}
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页
public function testTruePropertyIsFalse()
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页{
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页  
$this->assertFalse($this->_testable->trueProperty, "trueProperty isn't false");
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页}
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页
?>

 
标签: PHPUNIT 深入用法
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • PHPUnit 5.7.9 发布,PHP 单元测试框架
    PHPUnit 5.7.9 发布,PHP 单元测试框架
    PHPUnit 5.7.9 发布,PHP 单元测试框架王练 发布于2017年02月03日 收藏 0 MongoDB漏洞是什么?应该如何防护? PHPUnit 5.7.9发布了,PHPUnit是面向 PHP 的测试框架,是单元测试框架xUnit 的一个实例。 更新内容:修复:Reverted backwards incompatible chang
  • PHPUnit 6.0.3 和 5.7.10 发布,PHP 单元测试框架
    PHPUnit 6.0.3 和 5.7.10 发布,PHP 单元测试框
    PHPUnit 6.0.3 和 5.7.10 发布,PHP 单元测试框架王练 发布于2017年02月05日 收藏 0 MongoDB漏洞是什么?应该如何防护? PHPUnit 6.0.3和 5.7.10 发布了,PHPUnit是面向 PHP 的测试框架,是单元测试框架xUnit 的一个实例。 6.0.3 更新内容: Fixed #2460 : 更
  • PHPUnit入门基础教程
    PHPUnit入门基础教程
    PHPUnit是PHP语言的单元测试框架、工具,xunit单元测试工具系列成员之一,可以单独运行在Linux或windows系统下面,也可以集成到zend studio等IDE工具中。 工具下载: https://phpunit.de/index.html在线手册: https://phpunit.de/manual/4.6/zh_cn/index.htm
    02-05 PHPUnit
  • 组合使用Laravel和vfsStream测试文件上传
    核心要点 在应用开发中,测试是很重要的,在诸多的开发工具中,测试驱动开发是很伟大的一项; 测试文件上传并不像人们想象的那么简单; 目前,有很多很棒,但不为大家所熟知的测试工具; Larval能够让请求的校验更容易; 测试并不需要实际的文件系统,因为如
  • 如何使用 PHPUnit 測試 private 與 protected method?
    如何使用 PHPUnit 測試 private 與 protected m
    剛開始學習寫測試時,最多人的疑問就是該如何測試 private 與 protected method?,理論上不該去測試 private 與 protected ,本文會介紹一個 PHP 邪惡的技巧來完成測試,但建議除非萬不得已,不要使用此方法。 Motivation 在 PHPConf 第二天的 workshop,我曾
    11-22 PHPUnit
  • 如何使用 PHPUnit mock Closure?
    如何使用 PHPUnit mock Closure?
    若有需求需要抽換,物件導向編程教我們的是開 interface 達成解耦合,然後使用依賴注入,最後達成依賴反轉目標,隨著函數式編程越來越流行,函數式編程教我們將 closure 當成參數傳進函式,一樣可以解耦合與依賴反轉,尤其對於只使用一次的需求特別有效,不用
    11-22 PHPUnit
  • Phpstorm配置phpunit对php进行单元测试
    Phpstorm配置phpunit对php进行单元测试
    在 phpstorm 中配置 php 项目的单元测试,项目使用 Composer 进行管理,为了避免在项目中直接引入 phpunit 相关代码包,使项目的 vendor 目录变得臃肿,这里采用全局安装方式安装了 phpunit 代码包。 composer global require phpunit/phpunit=5.0.* 安装完成
  • PhpStorm 10 发布,PHP 7 和 PHPUnit 5 支持
    PhpStorm 10 发布,PHP 7 和 PHPUnit 5 支持
    PhpStorm 10 正式版发布 下载 ,此版本最主要的是 PHP 语言支持,编辑体验改进,调试器改进,代码分析改进和其他强大的新特性。 改进列表:PHP 语言和编辑体验:PHP 7支持 (including PHP 7 compatibility inspections),改进代码完成功能 新调试体验:PHP 交
  • PHP单元测试利器 PHPUNIT初探第1/2页
    PHP单元测试利器 PHPUNIT初探第1/2页
    你是否在程序开发的过程中遇到以下的情况:当你花了很长的时间开发一个应用后,你认为应该是大功告成了,可惜在调试的时候,老是不断的发现bug,而且最可怕的是,这些bug是重复出现的,你可能发现这些bug之间会有关联,但却老是找不到问题的所在。
    11-15 PHPUNIT
  • PHPUnit PHP测试框架安装方法
    PHPUnit是一个轻量级的PHP测试框架。它是在PHP5下面对JUnit3系列版本的完整移植,是xUnit测试框架家族的一员(它们都基于模式先锋Kent Beck的设计)。
点击排行