Syntax:assertContainsOnlyInstancesOf (string $classname, array $array, string $message = ’’)
Parameters: This function takes three parameters as shown in the above syntax. The parameters are described below: - $classname: this parameter is a string that is the class name.
- $array: This parameter is an array for which the assert function will check whether it contains only instances of the given class or not.
- $message: this parameter takes a string value. When the test case failed, this string message was displayed as an error message.
The following programs illustrate the assertContainsOnlyInstancesOf() function in PHPUnit: Program 1:
use
PHPUnitFrameworkTestCase;
class
Foo {
public
function
dummyFunction() {
return
true;}
}
class
Bar {
public
function
dummyFunction() {
return
true;}
}
class
GeeksPhpunitTestCase
extends
TestCase
{
public
function
testNegativeTestcaseForAssertContainsOnlyInstancesOf()
{
// Assert function to check if testArray contains
// single instance of Foo or not
$this
-> assertContainsOnlyInstancesOf (
Foo ::
class
,
[
new
Foo,
new
Bar,
new
Foo],
"testArray doesn’t contains only instance of Foo "
);
}
}
?>
Output: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 & amp; 0 (0 = > Foo Object & amp; 00000000051a5c33000000005d98efba() 1 = > Bar Object & amp; 00000000051a5d77000000005d98efba() 2 = > Foo Object & amp; 00000000051a5c32000000005d98efba()) contains only values of type "Foo". /home/shivam/Documents/engineer/phpunit/abc.php:20 FAILURES! Tests: 1, Assertions: 1, Failures: 1.
Program 2: use
PHPUnitFrameworkTestCase;
class
Foo {
public
function
dummyFunction() {
return
true;}
}
class
Bar {
public
function
dummyFunction() {
return
true;}
}
class
GeeksPhpunitTestCase
extends
TestCase
{
public
function
testNegativeTestcaseForAssertContainsOnlyInstancesOf()
{
// Assert a function to check if testArray
// single instance of Foo or not
$this
-> assertContainsOnlyInstancesOf (
Foo ::
class
,
[
new
Foo,
new
Foo],
"testArray contains only instance of Foo "
);
}
}
?>
Output:PHPUnit 8.2.5 by Sebastian Bergmann and contributors. ... 1/1 (100%) Time: 67 ms, Memory: 10.00 MB OK (1 test, 1 assertion)
Note: To run testcases with PHPUnit steps follows from here . Additionally, assertContainsOnlyInstancesOf() is supported by phpunit 7 and up.