assertContainsOnlyInstancesOf()函數是PHPUnit中的內置函數,用於聲明數組以包含其所有值作為給定類的實例。如果數組僅包含給定類的實例,則此斷言將返回true,否則返回false。如果為真,則通過斷言的測試用例,否則測試用例失敗。
用法:
assertContainsOnlyInstancesOf( string $classname, array $array, string $message = '' )
參數:該函數接受三個參數,如上麵的語法所示。參數說明如下:
- $classname:此參數是一個字符串,它是類的名稱。
- $array:此參數是一個數組,assert函數將為其檢查是否僅包含給定類的實例。
- $message:此參數采用字符串值。當測試用例失敗時,此字符串消息將顯示為錯誤消息。
以下程序說明了PHPUnit中的assertContainsOnlyInstancesOf()函數:
程序1:
<?php
use PHPUnit\Framework\TestCase;
class Foo {
public function dummyFunction(){return true;}
}
class Bar {
public function dummyFunction(){return true;}
}
class GeeksPhpunitTestCase extends TestCase
{
public function testNegativeTestcaseForAssertContainsOnlyInstancesOf()
{
// Assert function to test whether testArray contains
// only instance of Foo or not
$this->assertContainsOnlyInstancesOf(
Foo::class,
[new Foo, new Bar, new Foo],
"testArray doesn't contains only instance of Foo"
);
}
}
?>
輸出:
PHPUnit 8.2.5 by Sebastian Bergmann and contributors. F 1 / 1 (100%) Time:81 ms, Memory:10.00 MB There was 1 failure: 1) GeeksPhpunitTestCase::testNegativeTestcaseForAssertContainsOnlyInstancesOf testArray doesn't contains only instance of Foor Failed asserting that Array &0 ( 0 => Foo Object &00000000051a5c33000000005d98efba () 1 => Bar Object &00000000051a5d77000000005d98efba () 2 => Foo Object &00000000051a5c32000000005d98efba () ) contains only values of type "Foo". /home/shivam/Documents/geeks/phpunit/abc.php:20 FAILURES! Tests:1, Assertions:1, Failures:1.
程序2:
<?php
use PHPUnit\Framework\TestCase;
class Foo {
public function dummyFunction(){return true;}
}
class Bar {
public function dummyFunction(){return true;}
}
class GeeksPhpunitTestCase extends TestCase
{
public function testNegativeTestcaseForAssertContainsOnlyInstancesOf()
{
// Assert function to test whether testArray contains
// only instance of Foo or not
$this->assertContainsOnlyInstancesOf(
Foo::class,
[new Foo, new Foo],
"testArray contains only instance of Foo"
);
}
}
?>
輸出:
PHPUnit 8.2.5 by Sebastian Bergmann and contributors. . 1 / 1 (100%) Time:67 ms, Memory:10.00 MB OK (1 test, 1 assertion)
注意:要使用phpunit運行測試用例,請遵循此處的步驟。另外,phpunit 7及更高版本支持assertContainsOnlyInstancesOf()。
相關用法
- PHP PHPUnit assertDirectoryNotIsWritable()用法及代碼示例
- PHP PHPUnit assertEmpty()用法及代碼示例
- PHP PHPUnit assertNotContains()用法及代碼示例
- PHP PHPUnit assertStringContainsStringIgnoringCase()用法及代碼示例
- PHP PHPUnit assertCount()用法及代碼示例
- PHP PHPUnit assertStringContainsString()用法及代碼示例
- PHP PHPUnit assertStringNotContainsStringIgnoringCase()用法及代碼示例
- PHP PHPUnit assertEquals()用法及代碼示例
- PHP PHPUnit assertClassHasAttribute()用法及代碼示例
- PHP PHPUnit assertArrayNotHasKey()用法及代碼示例
- PHP PHPUnit assertArraySubset()用法及代碼示例
- PHP PHPUnit assertArrayHasKey()用法及代碼示例
- PHP PHPUnit assertDirectoryIsReadable()用法及代碼示例
- PHP PHPUnit assertEqualsCanonicalizing()用法及代碼示例
- PHP PHPUnit assertNotEquals()用法及代碼示例
注:本文由純淨天空篩選整理自Shivam.Pradhan大神的英文原創作品 PHPunit | assertContainsOnlyInstancesOf() Function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。