unidad PHP | Función de afirmaciónContainsOnlyInstancesOf()

La función assertContainsOnlyInstancesOf() es una función incorporada en PHPUnit y se usa para afirmar una array para contener todos sus valores como instancia de la clase dada. Esta afirmación devolverá verdadero en el caso de que la array contenga las únicas instancias de la clase dada; de lo contrario, devolverá falso. En caso de que sea cierto, el caso de prueba afirmado se aprobó; de lo contrario, el caso de prueba falló.
Sintaxis: 
 

assertContainsOnlyInstancesOf( string $classname, array $array, string $message = '' )

Parámetros: Esta función acepta tres parámetros como se muestra en la sintaxis anterior. Los parámetros se describen a continuación: 
 

  • $classname: este parámetro es una string que es el nombre de la clase.
  • $array: este parámetro es una array para la cual la función de aserción verificará si contiene solo instancias de una clase dada o no.
  • $mensaje: este parámetro toma valor de string. Cuando el caso de prueba falló, este mensaje de string se mostró como un mensaje de error.

Los siguientes programas ilustran la función assertContainsOnlyInstancesOf() en PHPUnit:
Programa 1: 
 

php

<?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"
        );
    }
}
 
?>

Producción: 
 

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 For
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.

Programa 2: 
 

php

<?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"
        );
    }
}
 
?>

Producción: 
 

PHPUnit 8.2.5 by Sebastian Bergmann and contributors.

.                                                                   1 / 1 (100%)

Time: 67 ms, Memory: 10.00 MB

OK (1 test, 1 assertion)

Nota: Para ejecutar casos de prueba con phpunit, siga los pasos desde aquí . Además, assertContainsOnlyInstancesOf() es compatible con phpunit 7 y superior.
 

Publicación traducida automáticamente

Artículo escrito por Shivam.Pradhan y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *