php單元測試斷言方法

1.assertArrayHasKey()

用法:$this->assertArrayHasKey('foo', ['bar' => 'baz']);php

等同於array_key_exists(),查數組有木有某個鍵html

 

2.assertClassHasAttribute()

用法:$this->assertClassHasAttribute('platform', User::class);正則表達式

查看某個類是否有某個變量json

 

3.assertArraySubset()

 用法:$this->assertArraySubset(['config' => ['key-a', 'key-b']], ['config' => ['key-a']]);//false數組

   $this->assertClassHasAttribute(['config' => ['key-a']], ['config' => ['key-a', 'key-b']);//trueapp

傳入兩個數組,判斷第二個數組是否包含第一個數組less

 

4.assertClassHasStaticAttribute()

用法:$this->assertClassHasStaticAttribute('foo', User::class);//falseide

     $this->assertClassHasStaticAttribute('platform', User::class);//trueui

查看某個類是否有某個靜態變量this

 

發現大概都挺簡單的。。。

後面簡單記錄下吧

$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

相關文章
相關標籤/搜索