1、配置单元测试目录:

(1)autoload.php

<?php
function autoloader($dir){
spl_autoload_register(function($name) use ($dir){
$name = str_replace('\\',DIRECTORY_SEPARATOR,$name);
require $dir.DIRECTORY_SEPARATOR.$name.'.php';
});
}
define('ROOT',__DIR__);
autoloader(ROOT);

(2)Money.php

<?php
class Money
{
private $amount;
public function __construct($amount)
{
$this->amount = $amount;
}
public function getAmount()
{
return $this->amount;
}
public function negate()
{
return new Money(-1*$this->amount);
}
}

(3)MoneyTest.php

<?php

use PHPUnit\Framework\TestCase;

class MoneyTest extends TestCase
{
public function testCanBeNegated()
{
$a = new Money(1);
$b = $a->negate();
$this->assertEquals(-1, $b->getAmount());
}
}

2、配置测试框架

3、建立单元测试模板:

4、运行测试:

5、测试结果

6、phpunit中相关的几个断言:

AssertTrue/AssertFalse    断言是否为真值还是假
AssertEquals        判断输出是否和预期的相等
AssertGreaterThan 断言结果是否大于某个值,同样的也有LessThan(小于),GreaterThanOrEqual(大于等于),
LessThanOrEqual (小于等于).
AssertContains 判断输入是否包含指定的值
AssertType 判断是否属于指定类型
AssertNull 判断是否为空值
AssertFileExists 判断文件是否存在
AssertRegExp 根据正则表达式判断

7、注意事项

(1)测试用例要引入phpunit

use PHPUnit\Framework\TestCase;

(2)测试类要继承TestCase

   class MoneyTest extends TestCase

参考:https://blog.51cto.com/12173069/2317104

最新文章

  1. linux下内存泄露检测工具Valgrind介绍
  2. Ul li 竖排 菜单
  3. How Tomcat Works(四)
  4. nodejs的mysql模块学习(六)连接池的创建和使用
  5. 时序图(Sequence Diagram)
  6. javascript外部使用
  7. 简单总结焦点事件、Event事件对象、冒泡事件
  8. 怎样求FIRST集、FOLLOW集和SELECT集
  9. bootstrap中的下拉菜单
  10. 后台List里的数据传到前台表格和下拉列表为什么不显示
  11. WARN conf.FlumeConfiguration: Could not configure sink sink1 due to: No channel configured for sink: sink1 org.apache.flume.conf.ConfigurationException: No channel configured for sink: sink1
  12. HIVE开发总结
  13. Spring中的事务操作
  14. docker in docker 出现 libltdl.so.7 问题
  15. SQL_sql语言的学习
  16. 第十八次ScrumMeeting博客
  17. 前端架构之路:Windows下安装Nodejs步骤
  18. 树状数组Lowbit用法
  19. C#设计模式系列:抽象工厂模式(AbstractFactory)
  20. 【bzoj4006】[JLOI2015]管道连接 斯坦纳树+状压dp

热门文章

  1. CentOS 7 各个版本的区别
  2. [HG]子树问题 题解
  3. python3.6+selnium3+IE11问题及解决方法
  4. week5 作业
  5. 2002: [Hnoi2010]Bounce 弹飞绵羊(分块)
  6. python 随机数详细使用,推到以及字符串,双色球小程序
  7. Rust Linking With C Library Functions
  8. QQ聊天监视器(简易版),可以获取当前QQ进程的聊天窗口内容
  9. [转]maven中scope详解
  10. 操作MySQL出错提示“BLOB/TEXT column request_data in key specification without a key length”解决办法