Open In App
Related Articles

PHPUnit | assertArraySubset() function

Improve Article
Improve
Save Article
Save
Like Article
Like

The assertArraySubset() function is a builtin function in PHPUnit and is used to assert an array having a subset.This assertion will return true in the case if the array contains the provided subset else return false and in case of true the asserted test case got passed else test case got failed.

Syntax:

assertArraySubset(array $subset, array $array[, bool $strict = false, string $message = ''])

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

  1. $subset: This parameter represents the subset to be contained in array.
  2. $array: This parameter is a array for which the assert function will check whether it contains subset or not.
  3. $strict: This parameter is a flag used to compare the identity of objects within arrays.
  4. $message: This parameter takes string value. When the testcase got failed this string message got displayed as error message.

Below programs illustrate the assertArraySubset() function:

Program 1:




<?php
use PHPUnit\Framework\TestCase;
  
class GeeksPhpunitTestCase extends TestCase
{
    public function testNegativeTestcaseForArraySubset()
    {
        $testArray = array("a"=>"value b", "b" =>" value b");
        $subset = array("a"=> "value a"); 
        // assert function to test whether 'subset' is a subset of array
        $this->assertArraySubset($subset, $testArray, false, "testArray doesn't contains subset as subset") ;
    }
}
  
?>


Output:

PHPUnit 6.5.5 by Sebastian Bergmann and contributors.

F                                                                   1 / 1 (100%)

Time: 29 ms, Memory: 4.00MB

There was 1 failure:

1) GeeksPhpunitTestCase::testNegativeTestcaseForArraySubset
testArray doesn't contains subset as subset
Failed asserting that an array has the subset Array &0 (
    'a' => 'value a'
).
--- Expected
+++ Actual
@@ @@
 Array
 (
-    [a] => value a
+    [a] => value b

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

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

Program 2:




<?php
use PHPUnit\Framework\TestCase;
  
class GeeksPhpunitTestCase extends TestCase
{
    public function testPositiveTestcaseForArraySubset()
    {
        $testArray = array("a"=>"value a", "b" =>" value b");
        $subset = array("a"=> "value a"); 
        // assert function to test whether 'subset' is a subset of array
        $this->assertArraySubset($subset, $testArray, false, "testArray doesn't contains subset as subset") ;
    }
}
?>


Output:

PHPUnit 6.5.5 by Sebastian Bergmann and contributors.

.                                                                   1 / 1 (100%)

Time: 21 ms, Memory: 4.00MB

OK (1 test, 1 assertion)

Note : To run testcases with phpunit follow steps from here.


Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape, GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out - check it out now!

Last Updated : 19 Jul, 2019
Like Article
Save Article
Similar Reads