PHPUnit | assertContainsOnly() Function

The assertContainsOnly() function is a builtin function in PHPUnit and is used to assert an array to contain all its values as the given data type. This assertion will return true in the case if the array contains values of only given data type else return false and in case of true the asserted test case got passed else test case got failed.

Syntax:

assertContainsOnly(string $dataType, array $array, 
                 boolean $isNativeType = null, string $message = '')

Parameters: This function accepts four parameters as shown in the above syntax. The parameters are described below:



  • $dataType: This parameter is a string which consists of the name of datatype.
  • $array: This parameter is array for which the assert function will check whether it contains only values of given type or not.
  • $isNativeType: This parameters tell whether the datatype is PHP native data type or not.
  • $message: This parameter takes string value. When the testcase got failed this string message got displayed as error message.

Below programs illustrate the assertContainsOnly() function in PHPUnit:

Program 1:

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
use PHPUnit\Framework\TestCase;
  
class GeeksPhpunitTestCase extends TestCase
{
    public function testNegativeTestcaseForAssertContainsOnly()
    {
        $testArray = array("geeksforgeek", 2);
        $dataType = "string"
        // assert function to test whether testArray contains
        // only string values
        $this->assertContainsOnly($dataType, $testArray, null,
                 "testArray doesn't  contains only string") ;
    }
}
  
?>

chevron_right


Output:

PHPUnit 8.2.5 by Sebastian Bergmann and contributors.

F                                                                   1 / 1 (100%)

Time: 236 ms, Memory: 10.00 MB

There was 1 failure:

1) GeeksPhpunitTestCase::testNegativeTestcaseForAssertContainsOnly
testArray doen't  contains only string
Failed asserting that Array &0 (
    0 => 'geeksforgeek'
    1 => 2
) contains only values of type "string".

/home/shivam/Documents/geeks/phpunit/abc.php:11

FAILURES!
Tests: 1, Assertions: 1, Failures: 1.

Program 2:

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
use PHPUnit\Framework\TestCase;
  
class GeeksPhpunitTestCase extends TestCase
{
    public function testPositiveTestcaseForAssertContainsOnly()
    {
        $testArray = array("geeksforgeek", "learn");
        $dataType = "string"
        // assert function to test whether testArray contains
        // only string values
        $this->assertContainsOnly($dataType, $testArray, null,
               "testArray doesn't  contains only string") ;
    }
}
  
?>

chevron_right


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 follow steps from here. Also, assertContainsOnly() is supported by phpunit 7 and above.



My Personal Notes arrow_drop_up

Discovering ways to develop a plane for soaring career goals

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.



Improved By : Shivam.Pradhan



Article Tags :
Practice Tags :


Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.