php单元测试断言方法
1.assertArrayHasKey()
用法:$this->assertArrayHasKey('foo', ['bar' => 'baz']);
等同于array_key_exists(),查数组有木有某个键
2.assertClassHasAttribute()
用法:$this->assertClassHasAttribute('platform', User::class);
查看某个类是否有某个变量
3.assertArraySubset()
用法:$this->assertArraySubset(['config' => ['key-a', 'key-b']], ['config' => ['key-a']]);//false
$this->assertClassHasAttribute(['config' => ['key-a']], ['config' => ['key-a', 'key-b']);//true
传入两个数组,判断第二个数组是否包含第一个数组
4.assertClassHasStaticAttribute()
用法:$this->assertClassHasStaticAttribute('foo', User::class);//false
$this->assertClassHasStaticAttribute('platform', User::class);//true
查看某个类是否有某个静态变量
发现大概都挺简单的。。。
后面简单记录下吧
$this->assertContains(4, [1, 2, 3]);//判断数组是否含有某个数字元素
$this->assertContains('foo', 'FooBar');//判断字符串是否含有某个字符串
$this->assertContains('foo', 'FooBar', '', true);//判断字符串是否含有某个字符串(大小写不敏感)
assertContainsOnly();//类似$this->assertArrayHasKey
$this->assertContainsOnlyInstancesOf(
Foo::class,
[new Foo, new Bar, new Foo]
);//判断类集合是否包含Foo::class
$this->assertCount(0, ['foo']);//判断数组长度是否为传入参数
$this->assertDirectoryExists('/path/to/directory');//判断指定的目录是否存在
$this->assertDirectoryIsReadable('/path/to/directory');//判断指定的目录是否存在和是否可读
$this->assertDirectoryIsWritable('/path/to/directory');//判断指定的目录是否存在和是否可写
$this->assertEmpty(['foo']);//判断是否为空
$this->assertNotEmpty(['foo']);//判断是否为空
$this->assertEqualXMLStructure($expected, $actual);//判断xml结构
$this->assertEquals('bar', 'baz');//判断是否相等(数字,字符串,数组,对象)
$this->assertEquals(1.0, 1.1, '', 0.2);//细化到float $this->assertFalse(true);//判断是否为false
$this->assertFileEquals('/home/sb/expected', '/home/sb/actual');//判断指定的文件是否相同
$this->assertFileExists('/path/to/file');//判断文件是否存在
$this->assertFileIsReadable('/path/to/file');//判断文件是否可读
$this->assertFileIsWritable('/path/to/file');//判断文件是否可写
$this->assertGreaterThan(2, 1);//当第2个的值 不大于 第1个的值时报告错误
$this->assertGreaterThanOrEqual(2, 1);//当第2个参数的值 不大于且不等于 第1个参数的值时报告错误
$this->assertInfinite(1);//判断int
$this->assertInstanceOf(RuntimeException::class, new Exception);//当参数二不是参数一的实例时报错
$this->assertInternalType('string', 42);//判断参数2类型是否正确
$this->assertIsReadable('/path/to/unreadable');//文件或目录不可读时报告错误
$this->assertIsWritable('/path/to/unwritable');//文件或目录不可写入时报告错误
$this->assertJsonFileEqualsJsonFile( 'path/to/fixture/file', 'path/to/actual/file');//文件或目录的值不匹配时报告错误
$this->assertJsonStringEqualsJsonFile( 'path/to/fixture/file', json_encode(['Mascot' => 'ux']) );//json或文件或目录的值不匹配时报告错误
$this->assertJsonStringEqualsJsonString( json_encode(['Mascot' => 'Tux']), json_encode(['Mascot' => 'ux']) );//两个json的值不匹配时报告错误
$this->assertLessThan(1, 2);//当参数2的值不小于参数1的值时报告错误
$this->assertLessThanOrEqual(1, 2);//当参数2的值不小于且不等于参数1的值时报告错误
$this->assertNan(1);//不是 NAN 时报告错误
$this->assertNull('foo');//不是 null 时报告错误
$this->assertObjectHasAttribute('foo', new stdClass);//new stdClass为$object当 $object->attributeName 不存在时报告错误
$this->assertRegExp('/foo/', 'bar');//不匹配于正则表达式时报告错误
$this->assertStringMatchesFormat('%i', 'foo');//不匹配于定义的格式时报告错误
$this->assertStringMatchesFormatFile('/path/to/expected.txt', 'foo');//不匹配于内容所定义的格式时报告错误
$this->assertSame('2204', 2204);//当两个变量的值与类型不完全相同时报告错误
$this->assertSame(new stdClass, new stdClass);//当两个变量不是指向同一个对象的引用时报告错误
$this->assertStringEndsWith('suffix', 'foo');//当参数2不以参数1结尾时报告错误
$this->assertStringEqualsFile('/home/sb/expected', 'actual');//当参数1(路径)所指定的文件其内容不是参数2时报告错误
$this->assertStringStartsWith('prefix', 'foo');//当参数2不以参数1开头时报告错误
$this->assertThat( $theBiscuit, $this->logicalNot( $this->equalTo($myBiscuit) ) );//当 $value(参数1) 不符合约束条件 $constraint(参数2) 时报告错误
表 A.1. 约束条件
约束条件 | 含义 |
---|---|
PHPUnit_Framework_Constraint_Attribute attribute(PHPUnit_Framework_Constraint $constraint, $attributeName) |
此约束将另外一个约束应用于某个类或对象的某个属性。 |
PHPUnit_Framework_Constraint_IsAnything anything() |
此约束接受任意输入值。 |
PHPUnit_Framework_Constraint_ArrayHasKey arrayHasKey(mixed $key) |
此约束断言所评定的数组拥有指定键名。 |
PHPUnit_Framework_Constraint_TraversableContains contains(mixed $value) |
此约束断言所评定的 array 或实现了 Iterator 接口的对象包含有给定值。 |
PHPUnit_Framework_Constraint_TraversableContainsOnly containsOnly(string $type) |
此约束断言所评定的 array 或实现了 Iterator 接口的对象仅包含给定类型的值。 |
PHPUnit_Framework_Constraint_TraversableContainsOnly containsOnlyInstancesOf(string $classname) |
此约束断言所评定的 array 或实现了 Iterator 接口的对象仅包含给定类名的类的实例。 |
PHPUnit_Framework_Constraint_IsEqual equalTo($value, $delta = 0, $maxDepth = 10) |
此约束检验一个值是否等于另外一个。 |
PHPUnit_Framework_Constraint_Attribute attributeEqualTo($attributeName, $value, $delta = 0, $maxDepth = 10) |
此约束检验一个值是否等于某个类或对象的某个属性。 |
PHPUnit_Framework_Constraint_DirectoryExists directoryExists() |
此约束检验所评定的目录是否存在。 |
PHPUnit_Framework_Constraint_FileExists fileExists() |
此约束检验所评定的文件名对应的文件是否存在。 |
PHPUnit_Framework_Constraint_IsReadable isReadable() |
此约束检验所评定的文件名对应的文件是否可读。 |
PHPUnit_Framework_Constraint_IsWritable isWritable() |
此约束检验所评定的文件名对应的文件是否可写。 |
PHPUnit_Framework_Constraint_GreaterThan greaterThan(mixed $value) |
此约束断言所评定的值大于给定值。 |
PHPUnit_Framework_Constraint_Or greaterThanOrEqual(mixed $value) |
此约束断言所评定的值大于或等于给定值。 |
PHPUnit_Framework_Constraint_ClassHasAttribute classHasAttribute(string $attributeName) |
此约束断言所评定的类具有给定属性。 |
PHPUnit_Framework_Constraint_ClassHasStaticAttribute classHasStaticAttribute(string $attributeName) |
此约束断言所评定的类具有给定静态属性。 |
PHPUnit_Framework_Constraint_ObjectHasAttribute hasAttribute(string $attributeName) |
此约束断言所评定的对象具有给定属性。 |
PHPUnit_Framework_Constraint_IsIdentical identicalTo(mixed $value) |
此约束断言所评定的值与另外一个值全等。 |
PHPUnit_Framework_Constraint_IsFalse isFalse() |
此约束断言所评定的值为 false 。 |
PHPUnit_Framework_Constraint_IsInstanceOf isInstanceOf(string $className) |
此约束断言所评定的对象是给定类的实例。 |
PHPUnit_Framework_Constraint_IsNull isNull() |
此约束断言所评定的值为 null 。 |
PHPUnit_Framework_Constraint_IsTrue isTrue() |
此约束断言所评定的值为 true 。 |
PHPUnit_Framework_Constraint_IsType isType(string $type) |
此约束断言所评定的值是指定类型的。 |
PHPUnit_Framework_Constraint_LessThan lessThan(mixed $value) |
此约束断言所评定的值小于给定值。 |
PHPUnit_Framework_Constraint_Or lessThanOrEqual(mixed $value) |
此约束断言所评定的值小于或等于给定值。 |
logicalAnd() |
逻辑与(AND)。 |
logicalNot(PHPUnit_Framework_Constraint $constraint) |
逻辑非(NOT)。 |
logicalOr() |
逻辑或(OR)。 |
logicalXor() |
逻辑异或(XOR)。 |
PHPUnit_Framework_Constraint_PCREMatch matchesRegularExpression(string $pattern) |
此约束断言所评定的字符串匹配于正则表达式。 |
PHPUnit_Framework_Constraint_StringContains stringContains(string $string, bool $case) |
此约束断言所评定的字符串包含指定字符串。 |
PHPUnit_Framework_Constraint_StringEndsWith stringEndsWith(string $suffix) |
此约束断言所评定的字符串以给定后缀结尾。 |
PHPUnit_Framework_Constraint_StringStartsWith stringStartsWith(string $prefix) |
此约束断言所评定的字符串以给定前缀开头。 |
$this->assertTrue(false);//当 参数 为 false 时报告错误
$this->assertXmlFileEqualsXmlFile('/home/sb/expected.xml', '/home/sb/actual.xml');//当 参数2 对应的 XML 文档与 参数1 对应的 XML 文档不相同时报告错误
$this->assertXmlStringEqualsXmlFile('/home/sb/expected.xml', '<foo><baz/></foo>');//当 参数2 对应的 XML 文档与 参数1 对应的 XML 文档不相同时报告错误
$this->assertXmlStringEqualsXmlString('<foo><bar/></foo>', '<foo><baz/></foo>');//当 参数2 对应的 XML 文档与 参数1 对应的 XML 文档不相同时报告错误
官方文档:https://phpunit.de/manual/current/zh_cn/appendixes.assertions.html#appendixes.assertions.assertArrayHasKey
php单元测试断言方法的更多相关文章
- unittest 单元测试框架断言方法
unittest单元测试框架的TestCase类下,测试结果断言方法:Assertion methods 方法 检查 版本 assertEqual(a, b) a == b assertNotEqu ...
- Selenium实战(四)——unittest单元测试2(断言方法+discover()多测试用例的执行)
一.断言方法 方法 检查 版本 assertEqual(a,b) a==b assertNotEqual(a,b) a!=b assertTrue(x) bool(x) is True a ...
- unittest常用的断言方法
unittest常用的断言方法 #msg:判断不成立时需要反馈的字符串 assertEqual(self, first, second, msg=None) --判断两个参数相等:first == s ...
- 测试教程网.unittest教程.7. 各种断言方法
From: http://www.testclass.net/pyunit/assert/ 背景 unittest支持各种断言方法. 断言列表 官方文档 方法 检查点 assertEqual(a, b ...
- Robotium_断言方法assert、is、search
下面的这些方法都主要用来判断测试结果是否与预期结果相符,一般把is和search方法放在assert里面判断.assert最常用的还是assertThat方法,是Junit的判断,这里就不多说了.断言 ...
- Selenium 2自动化测试实战28(断言方法)
一.断言方法 执行用例的过程中,最终用例是否执行通过,是通过判断测试得到的实例结果与预期结果是否相等决定的.unittest框架的TestCase类提供下面这些方法用于测试结果的判断. -assert ...
- (三)unittest断言方法的介绍
断言如同在测试用例上,类似于预期结果与实际结果是否一致,如果一致则表示测试通过,Assert断言很好的用于测试结果判断上,更灵活的对预期结果和实际结果进行对比,下面简单的介绍一下unittest的As ...
- unittest框架里的常用断言方法:用于检查数据
1.unittest框架里的常用断言方法:用于检查数据. (1)assertEqual(x,y) 检查两个参数类型相同并且值相等.(2)assertTrue(x) 检查唯一的参数值等于True(3)a ...
- Visaul Studio2015安装以及c++单元测试使用方法
Visual Studio 2015安装流程 vs2015是一款十分好用的IDE,接下来就介绍一下安装流程.这里采用在线安装方式,从官网下载使得安装更加安全. 第一步:在百度中搜索Visual ...
随机推荐
- Hive分组取Top K数据
阿里交叉面试问到了这个题,当时感觉没有答好,主要是对Hive这块还是不熟悉,其实可以采用row_number()函数. 1.ROW_NUMBER,RANK(),DENSE_RANK() 语法格式:ro ...
- sqoop 常见错误以及处理方式
Oracle: Connection Reset Errors 错误代码 // :: INFO mapred.JobClient: Task Id : attempt_201105261333_000 ...
- 批量设置ssh无密码登陆脚本
最近要给集群设置ssh无密码登陆,如果需要手动设置这个无密码登陆,所以在网上找了几个脚本,亲测下面这个好使,并且设置比较简单. 需要用root账户执行,我也是要给root账户设置无密码登陆. 首先我们 ...
- 如何将mysql表结构导出成Excel格式的(并带备注)另附转为word表格的方法
方法一: 1.使用一个MySQL管理工具:SQLyog,点击菜单栏“数据库”下拉的最后一项: 导出的格式如下: 2.要想转成Excel格式的只需手动将该表复制到Excel中去. 方法二: 1.以下用的 ...
- SpringBoot2 使用@RestController 无法返回一个地址,前台无法渲染为页面,只能返回json数据
spring boot之访问静态页面 楼主前两天自学spring boot,然后在学习的过程中,出现一个疑问,就是如何去访问静态的html网页,这个问题,楼主上网上搜了下,找到的是在resource目 ...
- 2013Hulu校园招聘笔试题
填空题:1.中序遍历二叉树,结果为ABCDEFGH,后序遍历结果为ABEDCHGF,先序遍历结果为? FCBADEGH 如下图所示: 2.对字符串HELL0_HULU中的字符进行二进制编码,使得字 ...
- 关于sentinel LDK加密war包实现应用加密的使用方法
经过一周多时间的研究,终于对sentinel产品的使用有个基本的掌握.其中走了不少的弯路,特此记录一下,以备后面回顾. 开发前的用料准备: windows 10 x64位, tomcat7 x64bi ...
- Qt 菜鸟的坑 QAbstractSocket::isValid()
我曾经多次在 Qt socket 编程中使用 tcpSocket.isValid 来判断我当前的连接是否可用,最近写程序时才发现此法并不妥当. bool QAbstractSocket::isVali ...
- 【转】Android配置文件权限一览表
转自:http://blog.csdn.net/kbest/article/details/7495154访问登记属性 android.permission.ACCESS_CHECKIN_PROPER ...
- Python之cv2
1.读取图片 import cv2 img = cv2.imread('./test.jpg') 读取出来的图片是numpy.ndarray格式,值是0-255, img的形状是 (图片高度,图片宽度 ...