當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


PHP PHPUnit assertContainsOnlyInstancesOf()用法及代碼示例


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()。



相關用法


注:本文由純淨天空篩選整理自Shivam.Pradhan大神的英文原創作品 PHPunit | assertContainsOnlyInstancesOf() Function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。