Spec-Zone.ru › PHPUnit 8

Утверждения

В этом приложении перечислены различные методы утверждений, которые доступны.

Статическое и нестатическое использование методов утверждений

Утверждения PHPUnit реализованы в PHPUnit\Framework\Assert. PHPUnit\Framework\TestCase наследуется от PHPUnit\Framework\Assert.

Методы утверждений объявлены статическими и могут вызываться из любого контекста, например, с помощью PHPUnit\Framework\Assert::assertTrue(), или с помощью $this->assertTrue() или self::assertTrue(), например, в классе, расширяющем PHPUnit\Framework\TestCase.

Фактически, вы можете даже использовать обёртки глобальных функций, такие как assertTrue() в любом контексте (включая классы, расширяющие PHPUnit\Framework\TestCase) при (ручном) включении файла исходного кода src/Framework/Assert/Functions.php, который поставляется с PHPUnit.

Часто задаваемый вопрос, особенно для разработчиков, которые ещё не знакомы с PHPUnit, заключается в том, является ли использование $this->assertTrue() или self::assertTrue(), например, «правильным» способом вызова утверждения. Короткий ответ: нет правильного способа. И нет неправильного способа тоже. Это дело личных предпочтений.

Для большинства людей использование $this->assertTrue() просто «чувствуется правильно», потому что метод теста вызывается на объекте теста. Факт, что методы утверждений объявлены статическими, позволяет использовать их повторно вне области объекта теста. Наконец, обёртки глобальных функций позволяют разработчикам писать меньше символов (assertTrue() вместо $this->assertTrue() или self::assertTrue()).

assertArrayHasKey()

assertArrayHasKey(mixed $key, array $array[, string $message = ''])

Сообщает об ошибке, идентифицированной $message, если $array не содержит $key.

assertArrayNotHasKey() — обратное этому утверждению и принимает те же аргументы.

Пример 1.1 Использование assertArrayHasKey()
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;

final class ArrayHasKeyTest extends TestCase
{
    public function testFailure(): void
    {
        $this->assertArrayHasKey('foo', ['bar' => 'baz']);
    }
}
$ phpunit ArrayHasKeyTest
PHPUnit 8.5.0 by Sebastian Bergmann and contributors.

F

Time: 0 seconds, Memory: 5.00Mb

There was 1 failure:

1) ArrayHasKeyTest::testFailure
Failed asserting that an array has the key 'foo'.

/home/sb/ArrayHasKeyTest.php:6

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

assertClassHasAttribute()

assertClassHasAttribute(string $attributeName, string $className[, string $message = ''])

Сообщает об ошибке, идентифицированной $message, если $className::attributeName не существует.

assertClassNotHasAttribute() — обратное этому утверждению и принимает те же аргументы.

Пример 1.2 Использование assertClassHasAttribute()
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;

final class ClassHasAttributeTest extends TestCase
{
    public function testFailure(): void
    {
        $this->assertClassHasAttribute('foo', stdClass::class);
    }
}
$ phpunit ClassHasAttributeTest
PHPUnit 8.5.0 by Sebastian Bergmann and contributors.

F

Time: 0 seconds, Memory: 4.75Mb

There was 1 failure:

1) ClassHasAttributeTest::testFailure
Failed asserting that class "stdClass" has attribute "foo".

/home/sb/ClassHasAttributeTest.php:6

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

assertArraySubset()

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

Сообщает об ошибке, идентифицированной $message, если $array не содержит $subset.

$strict — флаг, используемый для сравнения идентичности объектов внутри массивов.

Пример 1.3 Использование assertArraySubset()
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;

final class ArraySubsetTest extends TestCase
{
    public function testFailure(): void
    {
        $this->assertArraySubset(['config' => ['key-a', 'key-b']], ['config' => ['key-a']]);
    }
}
$ phpunit ArraySubsetTest
PHPUnit 8.5.0 by Sebastian Bergmann and contributors.

F

Time: 0 seconds, Memory: 5.00Mb

There was 1 failure:

1) ArraySubset::testFailure
Failed asserting that an array has the subset Array &0 (
    'config' => Array &1 (
        0 => 'key-a'
        1 => 'key-b'
    )
).

/home/sb/ArraySubsetTest.php:6

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

assertClassHasStaticAttribute()

assertClassHasStaticAttribute(string $attributeName, string $className[, string $message = ''])

Сообщает об ошибке, идентифицированной $message, если $className::attributeName не существует.

assertClassNotHasStaticAttribute() — обратное этому утверждению и принимает те же аргументы.

Пример 1.4 Использование assertClassHasStaticAttribute()
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;

final class ClassHasStaticAttributeTest extends TestCase
{
    public function testFailure(): void
    {
        $this->assertClassHasStaticAttribute('foo', stdClass::class);
    }
}
$ phpunit ClassHasStaticAttributeTest
PHPUnit 8.5.0 by Sebastian Bergmann and contributors.

F

Time: 0 seconds, Memory: 4.75Mb

There was 1 failure:

1) ClassHasStaticAttributeTest::testFailure
Failed asserting that class "stdClass" has static attribute "foo".

/home/sb/ClassHasStaticAttributeTest.php:6

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

assertContains()

assertContains(mixed $needle, iterable $haystack[, string $message = ''])

Сообщает об ошибке, идентифицированной $message, если $needle не является элементом $haystack.

assertNotContains() — обратное этому утверждению и принимает те же аргументы.

Пример 1.5 Использование assertContains()
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;

final class ContainsTest extends TestCase
{
    public function testFailure(): void
    {
        $this->assertContains(4, [1, 2, 3]);
    }
}
$ phpunit ContainsTest
PHPUnit 8.5.0 by Sebastian Bergmann and contributors.

F

Time: 0 seconds, Memory: 5.00Mb

There was 1 failure:

1) ContainsTest::testFailure
Failed asserting that an array contains 4.

/home/sb/ContainsTest.php:6

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

assertStringContainsString()

assertStringContainsString(string $needle, string $haystack[, string $message = ''])

Сообщает об ошибке, идентифицированной $message, если $needle не является подстрокой $haystack.

assertStringNotContainsString() — обратное этому утверждению и принимает те же аргументы.

Пример 1.6 Использование assertStringContainsString()
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;

final class StringContainsStringTest extends TestCase
{
    public function testFailure(): void
    {
        $this->assertStringContainsString('foo', 'bar');
    }
}
$ phpunit StringContainsStringTest
PHPUnit 8.5.0 by Sebastian Bergmann and contributors.

F                                                                   1 / 1 (100%)

Time: 37 ms, Memory: 6.00 MB

There was 1 failure:

1) StringContainsStringTest::testFailure
Failed asserting that 'bar' contains "foo".

/home/sb/StringContainsStringTest.php:8

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

assertStringContainsStringIgnoringCase()

assertStringContainsStringIgnoringCase(string $needle, string $haystack[, string $message = ''])

Сообщает об ошибке, идентифицированной $message, если $needle не является подстрокой $haystack.

Различия в регистре игнорируются, когда $needle ищется в $haystack.

assertStringNotContainsStringIgnoringCase() — обратное этому утверждению и принимает те же аргументы.

Пример 1.7 Использование assertStringContainsStringIgnoringCase()
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;

final class StringContainsStringIgnoringCaseTest extends TestCase
{
    public function testFailure(): void
    {
        $this->assertStringContainsStringIgnoringCase('foo', 'bar');
    }
}
$ phpunit StringContainsStringIgnoringCaseTest
PHPUnit 8.5.0 by Sebastian Bergmann and contributors.

F                                                                   1 / 1 (100%)

Time: 40 ms, Memory: 6.00 MB

There was 1 failure:

1) StringContainsStringTest::testFailure
Failed asserting that 'bar' contains "foo".

/home/sb/StringContainsStringIgnoringCaseTest.php:8

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

assertContainsOnly()

assertContainsOnly(string $type, iterable $haystack[, boolean $isNativeType = null, string $message = ''])

Сообщает об ошибке, идентифицированной $message, если $haystack не содержит только переменные типа $type.

$isNativeType — флаг, используемый для указания того, является ли $type родным типом PHP или нет.

assertNotContainsOnly() — обратное этому утверждению и принимает те же аргументы.

Пример 1.8 Использование assertContainsOnly()
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;

final class ContainsOnlyTest extends TestCase
{
    public function testFailure(): void
    {
        $this->assertContainsOnly('string', ['1', '2', 3]);
    }
}
$ phpunit ContainsOnlyTest
PHPUnit 8.5.0 by Sebastian Bergmann and contributors.

F

Time: 0 seconds, Memory: 5.00Mb

There was 1 failure:

1) ContainsOnlyTest::testFailure
Failed asserting that Array (
    0 => '1'
    1 => '2'
    2 => 3
) contains only values of type "string".

/home/sb/ContainsOnlyTest.php:6

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

assertContainsOnlyInstancesOf()

assertContainsOnlyInstancesOf(string $classname, Traversable|array $haystack[, string $message = ''])

Сообщает об ошибке, идентифицированной $message, если $haystack не содержит только экземпляры класса $classname.

Пример 1.9 Использование assertContainsOnlyInstancesOf()
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;

final class ContainsOnlyInstancesOfTest extends TestCase
{
    public function testFailure(): void
    {
        $this->assertContainsOnlyInstancesOf(
            Foo::class,
            [new Foo, new Bar, new Foo]
        );
    }
}
$ phpunit ContainsOnlyInstancesOfTest
PHPUnit 8.5.0 by Sebastian Bergmann and contributors.

F

Time: 0 seconds, Memory: 5.00Mb

There was 1 failure:

1) ContainsOnlyInstancesOfTest::testFailure
Failed asserting that Array ([0]=> Bar Object(...)) is an instance of class "Foo".

/home/sb/ContainsOnlyInstancesOfTest.php:6

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

assertCount()

assertCount($expectedCount, $haystack[, string $message = ''])

Сообщает об ошибке, идентифицированной $message, если количество элементов в $haystack не равно $expectedCount.

assertNotCount() — обратное этому утверждению и принимает те же аргументы.

Пример 1.10 Использование assertCount()
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;

final class CountTest extends TestCase
{
    public function testFailure(): void
    {
        $this->assertCount(0, ['foo']);
    }
}
$ phpunit CountTest
PHPUnit 8.5.0 by Sebastian Bergmann and contributors.

F

Time: 0 seconds, Memory: 4.75Mb

There was 1 failure:

1) CountTest::testFailure
Failed asserting that actual size 1 matches expected size 0.

/home/sb/CountTest.php:6

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

assertDirectoryExists()

assertDirectoryExists(string $directory[, string $message = ''])

Сообщает об ошибке, идентифицированной $message, если указанная директория $directory не существует.

assertDirectoryNotExists() — обратное этому утверждению и принимает те же аргументы.

Пример 1.11 Использование assertDirectoryExists()
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;

final class DirectoryExistsTest extends TestCase
{
    public function testFailure(): void
    {
        $this->assertDirectoryExists('/path/to/directory');
    }
}
$ phpunit DirectoryExistsTest
PHPUnit 8.5.0 by Sebastian Bergmann and contributors.

F

Time: 0 seconds, Memory: 4.75Mb

There was 1 failure:

1) DirectoryExistsTest::testFailure
Failed asserting that directory "/path/to/directory" exists.

/home/sb/DirectoryExistsTest.php:6

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

assertDirectoryIsReadable()

assertDirectoryIsReadable(string $directory[, string $message = ''])

Сообщает об ошибке, идентифицированной $message, если указанная директория $directory не является директорией или не доступна для чтения.

assertDirectoryNotIsReadable() — обратное этому утверждению и принимает те же аргументы.

Пример 1.12 Использование assertDirectoryIsReadable()
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;

final class DirectoryIsReadableTest extends TestCase
{
    public function testFailure(): void
    {
        $this->assertDirectoryIsReadable('/path/to/directory');
    }
}
$ phpunit DirectoryIsReadableTest
PHPUnit 8.5.0 by Sebastian Bergmann and contributors.

F

Time: 0 seconds, Memory: 4.75Mb

There was 1 failure:

1) DirectoryIsReadableTest::testFailure
Failed asserting that "/path/to/directory" is readable.

/home/sb/DirectoryIsReadableTest.php:6

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

assertDirectoryIsWritable()

assertDirectoryIsWritable(string $directory[, string $message = ''])

Сообщает об ошибке, идентифицированной $message, если указанный каталог $directory не является каталогом или не доступен для записи.

assertDirectoryNotIsWritable() является обратным утверждением и принимает те же аргументы.

Пример 1.13 Использование assertDirectoryIsWritable()
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;

final class DirectoryIsWritableTest extends TestCase
{
    public function testFailure(): void
    {
        $this->assertDirectoryIsWritable('/path/to/directory');
    }
}
$ phpunit DirectoryIsWritableTest
PHPUnit 8.5.0 by Sebastian Bergmann and contributors.

F

Time: 0 seconds, Memory: 4.75Mb

There was 1 failure:

1) DirectoryIsWritableTest::testFailure
Failed asserting that "/path/to/directory" is writable.

/home/sb/DirectoryIsWritableTest.php:6

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

assertEmpty()

assertEmpty(mixed $actual[, string $message = ''])

Сообщает об ошибке, идентифицированной $message, если $actual не пусто.

assertNotEmpty() является обратным утверждением и принимает те же аргументы.

Пример 1.14 Использование assertEmpty()
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;

final class EmptyTest extends TestCase
{
    public function testFailure(): void
    {
        $this->assertEmpty(['foo']);
    }
}
$ phpunit EmptyTest
PHPUnit 8.5.0 by Sebastian Bergmann and contributors.

F

Time: 0 seconds, Memory: 4.75Mb

There was 1 failure:

1) EmptyTest::testFailure
Failed asserting that an array is empty.

/home/sb/EmptyTest.php:6

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

assertEqualXMLStructure()

assertEqualXMLStructure(DOMElement $expectedElement, DOMElement $actualElement[, boolean $checkAttributes = false, string $message = ''])

Сообщает об ошибке, идентифицированной $message, если структура XML DOMElement в $actualElement не равна структуре XML DOMElement в $expectedElement.

Пример 1.15 Использование assertEqualXMLStructure()
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;

final class EqualXMLStructureTest extends TestCase
{
    public function testFailureWithDifferentNodeNames(): void
    {
        $expected = new DOMElement('foo');
        $actual = new DOMElement('bar');

        $this->assertEqualXMLStructure($expected, $actual);
    }

    public function testFailureWithDifferentNodeAttributes(): void
    {
        $expected = new DOMDocument;
        $expected->loadXML('<foo bar="true" />');

        $actual = new DOMDocument;
        $actual->loadXML('<foo/>');

        $this->assertEqualXMLStructure(
          $expected->firstChild, $actual->firstChild, true
        );
    }

    public function testFailureWithDifferentChildrenCount(): void
    {
        $expected = new DOMDocument;
        $expected->loadXML('<foo><bar/><bar/><bar/></foo>');

        $actual = new DOMDocument;
        $actual->loadXML('<foo><bar/></foo>');

        $this->assertEqualXMLStructure(
          $expected->firstChild, $actual->firstChild
        );
    }

    public function testFailureWithDifferentChildren(): void
    {
        $expected = new DOMDocument;
        $expected->loadXML('<foo><bar/><bar/><bar/></foo>');

        $actual = new DOMDocument;
        $actual->loadXML('<foo><baz/><baz/><baz/></foo>');

        $this->assertEqualXMLStructure(
          $expected->firstChild, $actual->firstChild
        );
    }
}
$ phpunit EqualXMLStructureTest
PHPUnit 8.5.0 by Sebastian Bergmann and contributors.

FFFF

Time: 0 seconds, Memory: 5.75Mb

There were 4 failures:

1) EqualXMLStructureTest::testFailureWithDifferentNodeNames
Failed asserting that two strings are equal.
--- Expected
+++ Actual
@@ @@
-'foo'
+'bar'

/home/sb/EqualXMLStructureTest.php:9

2) EqualXMLStructureTest::testFailureWithDifferentNodeAttributes
Number of attributes on node "foo" does not match
Failed asserting that 0 matches expected 1.

/home/sb/EqualXMLStructureTest.php:22

3) EqualXMLStructureTest::testFailureWithDifferentChildrenCount
Number of child nodes of "foo" differs
Failed asserting that 1 matches expected 3.

/home/sb/EqualXMLStructureTest.php:35

4) EqualXMLStructureTest::testFailureWithDifferentChildren
Failed asserting that two strings are equal.
--- Expected
+++ Actual
@@ @@
-'bar'
+'baz'

/home/sb/EqualXMLStructureTest.php:48

FAILURES!
Tests: 4, Assertions: 8, Failures: 4.

assertEquals()

assertEquals(mixed $expected, mixed $actual[, string $message = ''])

Сообщает об ошибке, идентифицированной $message, если две переменные $expected и $actual не равны.

assertNotEquals() является обратным утверждением и принимает те же аргументы.

Пример 1.16 Использование assertEquals()
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;

final class EqualsTest extends TestCase
{
    public function testFailure(): void
    {
        $this->assertEquals(1, 0);
    }

    public function testFailure2(): void
    {
        $this->assertEquals('bar', 'baz');
    }

    public function testFailure3(): void
    {
        $this->assertEquals("foo\nbar\nbaz\n", "foo\nbah\nbaz\n");
    }
}
$ phpunit EqualsTest
PHPUnit 8.5.0 by Sebastian Bergmann and contributors.

FFF

Time: 0 seconds, Memory: 5.25Mb

There were 3 failures:

1) EqualsTest::testFailure
Failed asserting that 0 matches expected 1.

/home/sb/EqualsTest.php:6

2) EqualsTest::testFailure2
Failed asserting that two strings are equal.
--- Expected
+++ Actual
@@ @@
-'bar'
+'baz'

/home/sb/EqualsTest.php:11

3) EqualsTest::testFailure3
Failed asserting that two strings are equal.
--- Expected
+++ Actual
@@ @@
 'foo
-bar
+bah
 baz
 '

/home/sb/EqualsTest.php:16

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

Для специальных типов аргументов в $expected и $actual используются более специализированные сравнения, см. ниже.

assertEquals(DOMDocument $expected, DOMDocument $actual[, string $message = ''])

Сообщает об ошибке, идентифицированной $message, если канонические формы XML-документов, представленные двумя объектами DOMDocument $expected и $actual, не равны (без комментариев).

Пример 1.17 Использование assertEquals() с объектами DOMDocument
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;

final class EqualsTest extends TestCase
{
    public function testFailure(): void
    {
        $expected = new DOMDocument;
        $expected->loadXML('<foo><bar/></foo>');

        $actual = new DOMDocument;
        $actual->loadXML('<bar><foo/></bar>');

        $this->assertEquals($expected, $actual);
    }
}
$ phpunit EqualsTest
PHPUnit 8.5.0 by Sebastian Bergmann and contributors.

F

Time: 0 seconds, Memory: 5.00Mb

There was 1 failure:

1) EqualsTest::testFailure
Failed asserting that two DOM documents are equal.
--- Expected
+++ Actual
@@ @@
 <?xml version="1.0"?>
-<foo>
-  <bar/>
-</foo>
+<bar>
+  <foo/>
+</bar>

/home/sb/EqualsTest.php:12

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

assertEquals(object $expected, object $actual[, string $message = ''])

Сообщает об ошибке, идентифицированной $message, если два объекта $expected и $actual не имеют равных значений атрибутов.

Пример 1.18 Использование assertEquals() с объектами
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;

final class EqualsTest extends TestCase
{
    public function testFailure(): void
    {
        $expected = new stdClass;
        $expected->foo = 'foo';
        $expected->bar = 'bar';

        $actual = new stdClass;
        $actual->foo = 'bar';
        $actual->baz = 'bar';

        $this->assertEquals($expected, $actual);
    }
}
$ phpunit EqualsTest
PHPUnit 8.5.0 by Sebastian Bergmann and contributors.

F

Time: 0 seconds, Memory: 5.25Mb

There was 1 failure:

1) EqualsTest::testFailure
Failed asserting that two objects are equal.
--- Expected
+++ Actual
@@ @@
 stdClass Object (
-    'foo' => 'foo'
-    'bar' => 'bar'
+    'foo' => 'bar'
+    'baz' => 'bar'
 )

/home/sb/EqualsTest.php:14

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

assertEquals(array $expected, array $actual[, string $message = ''])

Сообщает об ошибке, идентифицированной $message, если два массива $expected и $actual не равны.

Пример 1.19 Использование assertEquals() с массивами
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;

final class EqualsTest extends TestCase
{
    public function testFailure(): void
    {
        $this->assertEquals(['a', 'b', 'c'], ['a', 'c', 'd']);
    }
}
$ phpunit EqualsTest
PHPUnit 8.5.0 by Sebastian Bergmann and contributors.

F

Time: 0 seconds, Memory: 5.25Mb

There was 1 failure:

1) EqualsTest::testFailure
Failed asserting that two arrays are equal.
--- Expected
+++ Actual
@@ @@
 Array (
     0 => 'a'
-    1 => 'b'
-    2 => 'c'
+    1 => 'c'
+    2 => 'd'
 )

/home/sb/EqualsTest.php:6

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

assertEqualsCanonicalizing()

assertEqualsCanonicalizing(mixed $expected, mixed $actual[, string $message = ''])

Сообщает об ошибке, идентифицированной $message, если две переменные $expected и $actual не равны.

Содержимое $expected и $actual канонизируется перед сравнением. Например, если $expected и $actual являются массивами, эти массивы сортируются перед сравнением. Если $expected и $actual являются объектами, каждый объект преобразуется в массив, содержащий все приватные, защищенные и публичные атрибуты.

assertNotEqualsCanonicalizing() является обратным утверждением и принимает те же аргументы.

Пример 1.20 Использование assertEqualsCanonicalizing()
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;

final class EqualsCanonicalizingTest extends TestCase
{
    public function testFailure()
    {
        $this->assertEqualsCanonicalizing([3, 2, 1], [2, 3, 0, 1]);
    }
}
$ phpunit EqualsCanonicalizingTest
PHPUnit 8.5.0 by Sebastian Bergmann and contributors.

F                                                                   1 / 1 (100%)

Time: 42 ms, Memory: 6.00 MB

There was 1 failure:

1) EqualsCanonicalizingTest::testFailure
Failed asserting that two arrays are equal.
--- Expected
+++ Actual
@@ @@
 Array (
-    0 => 1
-    1 => 2
-    2 => 3
+    0 => 0
+    1 => 1
+    2 => 2
+    3 => 3
 )

/home/sb/EqualsCanonicalizingTest.php:8

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

assertEqualsIgnoringCase()

assertEqualsIgnoringCase(mixed $expected, mixed $actual[, string $message = ''])

Сообщает об ошибке, идентифицированной $message, если две переменные $expected и $actual не равны.

При сравнении $expected и $actual игнорируются различия в регистре.

assertNotEqualsIgnoringCase() является обратным утверждением и принимает те же аргументы.

Пример 1.21 Использование assertEqualsIgnoringCase()
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;

final class EqualsIgnoringCaseTest extends TestCase
{
    public function testFailure()
    {
        $this->assertEqualsIgnoringCase('foo', 'BAR');
    }
}
$ phpunit EqualsIgnoringCaseTest
PHPUnit 8.5.0 by Sebastian Bergmann and contributors.

F                                                                   1 / 1 (100%)

Time: 51 ms, Memory: 6.00 MB

There was 1 failure:

1) EqualsIgnoringCaseTest::testFailure
Failed asserting that two strings are equal.
--- Expected
+++ Actual
@@ @@
-'foo'
+'BAR'

/home/sb/EqualsIgnoringCaseTest.php:8

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

assertEqualsWithDelta()

assertEqualsWithDelta(mixed $expected, mixed $actual, float $delta[, string $message = ''])

Сообщает об ошибке, идентифицированной $message, если абсолютная разница между $expected и $actual больше, чем $delta.

Пожалуйста, прочтите «Что каждый программист должен знать о плавающей арифметике», чтобы понять, почему $delta необходимо.

assertNotEqualsWithDelta() является обратным утверждением и принимает те же аргументы.

Пример 1.22 Использование assertEqualsWithDelta()
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;

final class EqualsWithDeltaTest extends TestCase
{
    public function testFailure()
    {
        $this->assertEqualsWithDelta(1.0, 1.5, 0.1);
    }
}
$ phpunit EqualsWithDeltaTest
PHPUnit 8.5.0 by Sebastian Bergmann and contributors.

F                                                                   1 / 1 (100%)

Time: 41 ms, Memory: 6.00 MB

There was 1 failure:

1) EqualsWithDeltaTest::testFailure
Failed asserting that 1.5 matches expected 1.0.

/home/sb/EqualsWithDeltaTest.php:8

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

assertFalse()

assertFalse(bool $condition[, string $message = ''])

Сообщает об ошибке, идентифицированной $message, если $condition равно true.

assertNotFalse() является обратным утверждением и принимает те же аргументы.

Пример 1.23 Использование assertFalse()
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;

final class FalseTest extends TestCase
{
    public function testFailure(): void
    {
        $this->assertFalse(true);
    }
}
$ phpunit FalseTest
PHPUnit 8.5.0 by Sebastian Bergmann and contributors.

F

Time: 0 seconds, Memory: 5.00Mb

There was 1 failure:

1) FalseTest::testFailure
Failed asserting that true is false.

/home/sb/FalseTest.php:6

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

assertFileEquals()

assertFileEquals(string $expected, string $actual[, string $message = ''])

Сообщает об ошибке, идентифицированной $message, если файл, указанный в $expected, не имеет того же содержимого, что и файл, указанный в $actual.

assertFileNotEquals() является обратным утверждением и принимает те же аргументы.

Пример 1.24 Использование assertFileEquals()
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;

final class FileEqualsTest extends TestCase
{
    public function testFailure(): void
    {
        $this->assertFileEquals('/home/sb/expected', '/home/sb/actual');
    }
}
$ phpunit FileEqualsTest
PHPUnit 8.5.0 by Sebastian Bergmann and contributors.

F

Time: 0 seconds, Memory: 5.25Mb

There was 1 failure:

1) FileEqualsTest::testFailure
Failed asserting that two strings are equal.
--- Expected
+++ Actual
@@ @@
-'expected
+'actual
 '

/home/sb/FileEqualsTest.php:6

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

assertFileExists()

assertFileExists(string $filename[, string $message = ''])

Сообщает об ошибке, идентифицированной $message, если файл, указанный в $filename, не существует.

assertFileNotExists() является обратным утверждением и принимает те же аргументы.

Пример 1.25 Использование assertFileExists()
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;

final class FileExistsTest extends TestCase
{
    public function testFailure(): void
    {
        $this->assertFileExists('/path/to/file');
    }
}
$ phpunit FileExistsTest
PHPUnit 8.5.0 by Sebastian Bergmann and contributors.

F

Time: 0 seconds, Memory: 4.75Mb

There was 1 failure:

1) FileExistsTest::testFailure
Failed asserting that file "/path/to/file" exists.

/home/sb/FileExistsTest.php:6

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

assertFileIsReadable()

assertFileIsReadable(string $filename[, string $message = ''])

Сообщает об ошибке, идентифицированной $message, если файл, указанный в $filename, не является файлом или не доступен для чтения.

assertFileNotIsReadable() является обратным утверждением и принимает те же аргументы.

Пример 1.26 Использование assertFileIsReadable()
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;

final class FileIsReadableTest extends TestCase
{
    public function testFailure(): void
    {
        $this->assertFileIsReadable('/path/to/file');
    }
}
$ phpunit FileIsReadableTest
PHPUnit 8.5.0 by Sebastian Bergmann and contributors.

F

Time: 0 seconds, Memory: 4.75Mb

There was 1 failure:

1) FileIsReadableTest::testFailure
Failed asserting that "/path/to/file" is readable.

/home/sb/FileIsReadableTest.php:6

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

assertFileIsWritable()

assertFileIsWritable(string $filename[, string $message = ''])

Сообщает об ошибке, определенной $message, если файл, указанный в $filename, не является файлом или не является доступным для записи.

assertFileNotIsWritable() является обратной стороной этого утверждения и принимает те же аргументы.

Пример 1.27 Использование assertFileIsWritable()
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;

final class FileIsWritableTest extends TestCase
{
    public function testFailure(): void
    {
        $this->assertFileIsWritable('/path/to/file');
    }
}
$ phpunit FileIsWritableTest
PHPUnit 8.5.0 by Sebastian Bergmann and contributors.

F

Time: 0 seconds, Memory: 4.75Mb

There was 1 failure:

1) FileIsWritableTest::testFailure
Failed asserting that "/path/to/file" is writable.

/home/sb/FileIsWritableTest.php:6

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

assertGreaterThan()

assertGreaterThan(mixed $expected, mixed $actual[, string $message = ''])

Сообщает об ошибке, определенной $message, если значение $actual больше не, чем значение $expected.

Пример 1.28 Использование assertGreaterThan()
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;

final class GreaterThanTest extends TestCase
{
    public function testFailure(): void
    {
        $this->assertGreaterThan(2, 1);
    }
}
$ phpunit GreaterThanTest
PHPUnit 8.5.0 by Sebastian Bergmann and contributors.

F

Time: 0 seconds, Memory: 5.00Mb

There was 1 failure:

1) GreaterThanTest::testFailure
Failed asserting that 1 is greater than 2.

/home/sb/GreaterThanTest.php:6

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

assertGreaterThanOrEqual()

assertGreaterThanOrEqual(mixed $expected, mixed $actual[, string $message = ''])

Сообщает об ошибке, определенной $message, если значение $actual не больше или равно значению $expected.

Пример 1.29 Использование assertGreaterThanOrEqual()
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;

final class GreatThanOrEqualTest extends TestCase
{
    public function testFailure(): void
    {
        $this->assertGreaterThanOrEqual(2, 1);
    }
}
$ phpunit GreaterThanOrEqualTest
PHPUnit 8.5.0 by Sebastian Bergmann and contributors.

F

Time: 0 seconds, Memory: 5.25Mb

There was 1 failure:

1) GreatThanOrEqualTest::testFailure
Failed asserting that 1 is equal to 2 or is greater than 2.

/home/sb/GreaterThanOrEqualTest.php:6

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

assertInfinite()

assertInfinite(mixed $variable[, string $message = ''])

Сообщает об ошибке, определенной $message, если $variable не является INF.

assertFinite() является обратной стороной этого утверждения и принимает те же аргументы.

Пример 1.30 Использование assertInfinite()
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;

final class InfiniteTest extends TestCase
{
    public function testFailure(): void
    {
        $this->assertInfinite(1);
    }
}
$ phpunit InfiniteTest
PHPUnit 8.5.0 by Sebastian Bergmann and contributors.

F

Time: 0 seconds, Memory: 5.00Mb

There was 1 failure:

1) InfiniteTest::testFailure
Failed asserting that 1 is infinite.

/home/sb/InfiniteTest.php:6

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

assertInstanceOf()

assertInstanceOf($expected, $actual[, $message = ''])

Сообщает об ошибке, определенной $message, если $actual не является экземпляром $expected.

assertNotInstanceOf() является обратной стороной этого утверждения и принимает те же аргументы.

Пример 1.31 Использование assertInstanceOf()
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;

final class InstanceOfTest extends TestCase
{
    public function testFailure(): void
    {
        $this->assertInstanceOf(RuntimeException::class, new Exception);
    }
}
$ phpunit InstanceOfTest
PHPUnit 8.5.0 by Sebastian Bergmann and contributors.

F

Time: 0 seconds, Memory: 5.00Mb

There was 1 failure:

1) InstanceOfTest::testFailure
Failed asserting that Exception Object (...) is an instance of class "RuntimeException".

/home/sb/InstanceOfTest.php:6

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

assertIsArray()

assertIsArray($actual[, $message = ''])

Сообщает об ошибке, определенной $message, если $actual не является массивом типа array.

assertIsNotArray() является обратной стороной этого утверждения и принимает те же аргументы.

Пример 1.32 Использование assertIsArray()
<?php
use PHPUnit\Framework\TestCase;

class ArrayTest extends TestCase
{
    public function testFailure()
    {
        $this->assertIsArray(null);
    }
}
$ phpunit ArrayTest
PHPUnit |version|.0 by Sebastian Bergmann and contributors.

F

Time: 0 seconds, Memory: 5.00Mb

There was 1 failure:

1) ArrayTest::testFailure
Failed asserting that null is of type "array".

/home/sb/ArrayTest.php:8

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

assertIsBool()

assertIsBool($actual[, $message = ''])

Сообщает об ошибке, определенной $message, если $actual не является логическим значением типа bool.

assertIsNotBool() является обратной стороной этого утверждения и принимает те же аргументы.

Пример 1.33 Использование assertIsBool()
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;

final class BoolTest extends TestCase
{
    public function testFailure(): void
    {
        $this->assertIsBool(null);
    }
}
$ phpunit BoolTest
PHPUnit |version|.0 by Sebastian Bergmann and contributors.

F

Time: 0 seconds, Memory: 5.00Mb

There was 1 failure:

1) BoolTest::testFailure
Failed asserting that null is of type "bool".

/home/sb/BoolTest.php:8

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

assertIsCallable()

assertIsCallable($actual[, $message = ''])

Сообщает об ошибке, определенной $message, если $actual не является вызываемым элементом типа callable.

assertIsNotCallable() является обратной стороной этого утверждения и принимает те же аргументы.

Пример 1.34 Использование assertIsCallable()
<?php
use PHPUnit\Framework\TestCase;

class CallableTest extends TestCase
{
    public function testFailure()
    {
        $this->assertIsCallable(null);
    }
}
$ phpunit CallableTest
PHPUnit |version|.0 by Sebastian Bergmann and contributors.

F

Time: 0 seconds, Memory: 5.00Mb

There was 1 failure:

1) CallableTest::testFailure
Failed asserting that null is of type "callable".

/home/sb/CallableTest.php:8

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

assertIsFloat()

assertIsFloat($actual[, $message = ''])

Сообщает об ошибке, определенной $message, если $actual не является числом с плавающей точкой типа float.

assertIsNotFloat() является обратной стороной этого утверждения и принимает те же аргументы.

Пример 1.35 Использование assertIsFloat()
<?php
use PHPUnit\Framework\TestCase;

class FloatTest extends TestCase
{
    public function testFailure()
    {
        $this->assertIsFloat(null);
    }
}
$ phpunit FloatTest
PHPUnit |version|.0 by Sebastian Bergmann and contributors.

F

Time: 0 seconds, Memory: 5.00Mb

There was 1 failure:

1) FloatTest::testFailure
Failed asserting that null is of type "float".

/home/sb/FloatTest.php:8

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

assertIsInt()

assertIsInt($actual[, $message = ''])

Сообщает об ошибке, определенной $message, если $actual не является целым числом типа int.

assertIsNotInt() является обратной стороной этого утверждения и принимает те же аргументы.

Пример 1.36 Использование assertIsInt()
<?php
use PHPUnit\Framework\TestCase;

class IntTest extends TestCase
{
    public function testFailure()
    {
        $this->assertIsInt(null);
    }
}
$ phpunit IntTest
PHPUnit |version|.0 by Sebastian Bergmann and contributors.

F

Time: 0 seconds, Memory: 5.00Mb

There was 1 failure:

1) IntTest::testFailure
Failed asserting that null is of type "int".

/home/sb/IntTest.php:8

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

assertIsIterable()

assertIsIterable($actual[, $message = ''])

Сообщает об ошибке, определенной $message, если $actual не является итерируемым объектом типа iterable.

assertIsNotIterable() является обратной стороной этого утверждения и принимает те же аргументы.

Пример 1.37 Использование assertIsIterable()
<?php
use PHPUnit\Framework\TestCase;

class IterableTest extends TestCase
{
    public function testFailure()
    {
        $this->assertIsIterable(null);
    }
}
$ phpunit IterableTest
PHPUnit |version|.0 by Sebastian Bergmann and contributors.

F

Time: 0 seconds, Memory: 5.00Mb

There was 1 failure:

1) IterableTest::testFailure
Failed asserting that null is of type "iterable".

/home/sb/IterableTest.php:8

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

assertIsNumeric()

assertIsNumeric($actual[, $message = ''])

Сообщает об ошибке, определенной $message, если $actual не является числом типа numeric.

assertIsNotNumeric() является обратной стороной этого утверждения и принимает те же аргументы.

Пример 1.38 Использование assertIsNumeric()
<?php
use PHPUnit\Framework\TestCase;

class NumericTest extends TestCase
{
    public function testFailure()
    {
        $this->assertIsNumeric(null);
    }
}
$ phpunit NumericTest
PHPUnit |version|.0 by Sebastian Bergmann and contributors.

F

Time: 0 seconds, Memory: 5.00Mb

There was 1 failure:

1) NumericTest::testFailure
Failed asserting that null is of type "numeric".

/home/sb/NumericTest.php:8

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

assertIsObject()

assertIsObject($actual[, $message = ''])

Сообщает об ошибке, определенной $message, если $actual не является объектом типа object.

assertIsNotObject() является обратной стороной этого утверждения и принимает те же аргументы.

Пример 1.39 Использование assertIsObject()
<?php
use PHPUnit\Framework\TestCase;

class ObjectTest extends TestCase
{
    public function testFailure()
    {
        $this->assertIsObject(null);
    }
}
$ phpunit ObjectTest
PHPUnit |version|.0 by Sebastian Bergmann and contributors.

F

Time: 0 seconds, Memory: 5.00Mb

There was 1 failure:

1) ObjectTest::testFailure
Failed asserting that null is of type "object".

/home/sb/ObjectTest.php:8

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

assertIsResource()

assertIsResource($actual[, $message = ''])

Сообщает об ошибке, определенной $message, если $actual не является ресурсом типа resource.

assertIsNotResource() является обратной стороной этого утверждения и принимает те же аргументы.

Пример 1.40 Использование assertIsResource()
<?php
use PHPUnit\Framework\TestCase;

class ResourceTest extends TestCase
{
    public function testFailure()
    {
        $this->assertIsResource(null);
    }
}
$ phpunit ResourceTest
PHPUnit |version|.0 by Sebastian Bergmann and contributors.

F

Time: 0 seconds, Memory: 5.00Mb

There was 1 failure:

1) ResourceTest::testFailure
Failed asserting that null is of type "resource".

/home/sb/ResourceTest.php:8

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

assertIsScalar()

assertIsScalar($actual[, $message = ''])

Сообщает об ошибке, определенной $message, если $actual не является скалярным значением типа scalar.

assertIsNotScalar() является обратной стороной этого утверждения и принимает те же аргументы.

Пример 1.41 Использование assertIsScalar()
<?php
use PHPUnit\Framework\TestCase;

class ScalarTest extends TestCase
{
    public function testFailure()
    {
        $this->assertIsScalar(null);
    }
}
$ phpunit ScalarTest
PHPUnit |version|.0 by Sebastian Bergmann and contributors.

F

Time: 0 seconds, Memory: 5.00Mb

There was 1 failure:

1) ScalarTest::testFailure
Failed asserting that null is of type "scalar".

/home/sb/ScalarTest.php:8

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

assertIsString()

assertIsString($actual[, $message = ''])

Сообщает об ошибке, определенной $message, если $actual не имеет типа string.

assertIsNotString() — это обратное утверждение, принимающее те же аргументы.

Пример 1.42 Использование assertIsString()
<?php
use PHPUnit\Framework\TestCase;

class StringTest extends TestCase
{
    public function testFailure()
    {
        $this->assertIsString(null);
    }
}
$ phpunit StringTest
PHPUnit 8.5.0 by Sebastian Bergmann and contributors.

F

Time: 0 seconds, Memory: 5.00Mb

There was 1 failure:

1) StringTest::testFailure
Failed asserting that null is of type "string".

/home/sb/StringTest.php:8

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

assertIsReadable()

assertIsReadable(string $filename[, string $message = ''])

Сообщает об ошибке, определенной $message, если файл или директория, указанные в $filename, недоступны для чтения.

assertNotIsReadable() — это обратное утверждение, принимающее те же аргументы.

Пример 1.43 Использование assertIsReadable()
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;

final class IsReadableTest extends TestCase
{
    public function testFailure(): void
    {
        $this->assertIsReadable('/path/to/unreadable');
    }
}
$ phpunit IsReadableTest
PHPUnit 8.5.0 by Sebastian Bergmann and contributors.

F

Time: 0 seconds, Memory: 4.75Mb

There was 1 failure:

1) IsReadableTest::testFailure
Failed asserting that "/path/to/unreadable" is readable.

/home/sb/IsReadableTest.php:6

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

assertIsWritable()

assertIsWritable(string $filename[, string $message = ''])

Сообщает об ошибке, определенной $message, если файл или директория, указанные в $filename, недоступны для записи.

assertNotIsWritable() — это обратное утверждение, принимающее те же аргументы.

Пример 1.44 Использование assertIsWritable()
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;

final class IsWritableTest extends TestCase
{
    public function testFailure(): void
    {
        $this->assertIsWritable('/path/to/unwritable');
    }
}
$ phpunit IsWritableTest
PHPUnit 8.5.0 by Sebastian Bergmann and contributors.

F

Time: 0 seconds, Memory: 4.75Mb

There was 1 failure:

1) IsWritableTest::testFailure
Failed asserting that "/path/to/unwritable" is writable.

/home/sb/IsWritableTest.php:6

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

assertJsonFileEqualsJsonFile()

assertJsonFileEqualsJsonFile(mixed $expectedFile, mixed $actualFile[, string $message = ''])

Сообщает об ошибке, определенной $message, если значение $actualFile не совпадает со значением $expectedFile.

Пример 1.45 Использование assertJsonFileEqualsJsonFile()
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;

final class JsonFileEqualsJsonFileTest extends TestCase
{
    public function testFailure(): void
    {
        $this->assertJsonFileEqualsJsonFile(
          'path/to/fixture/file', 'path/to/actual/file');
    }
}
$ phpunit JsonFileEqualsJsonFileTest
PHPUnit 8.5.0 by Sebastian Bergmann and contributors.

F

Time: 0 seconds, Memory: 5.00Mb

There was 1 failure:

1) JsonFileEqualsJsonFile::testFailure
Failed asserting that '{"Mascot":"Tux"}' matches JSON string "["Mascott", "Tux", "OS", "Linux"]".

/home/sb/JsonFileEqualsJsonFileTest.php:5

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

assertJsonStringEqualsJsonFile()

assertJsonStringEqualsJsonFile(mixed $expectedFile, mixed $actualJson[, string $message = ''])

Сообщает об ошибке, определенной $message, если значение $actualJson не совпадает со значением $expectedFile.

Пример 1.46 Использование assertJsonStringEqualsJsonFile()
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;

final class JsonStringEqualsJsonFileTest extends TestCase
{
    public function testFailure(): void
    {
        $this->assertJsonStringEqualsJsonFile(
            'path/to/fixture/file', json_encode(['Mascot' => 'ux'])
        );
    }
}
$ phpunit JsonStringEqualsJsonFileTest
PHPUnit 8.5.0 by Sebastian Bergmann and contributors.

F

Time: 0 seconds, Memory: 5.00Mb

There was 1 failure:

1) JsonStringEqualsJsonFile::testFailure
Failed asserting that '{"Mascot":"ux"}' matches JSON string "{"Mascott":"Tux"}".

/home/sb/JsonStringEqualsJsonFileTest.php:5

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

assertJsonStringEqualsJsonString()

assertJsonStringEqualsJsonString(mixed $expectedJson, mixed $actualJson[, string $message = ''])

Сообщает об ошибке, определенной $message, если значение $actualJson не совпадает со значением $expectedJson.

Пример 1.47 Использование assertJsonStringEqualsJsonString()
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;

final class JsonStringEqualsJsonStringTest extends TestCase
{
    public function testFailure(): void
    {
        $this->assertJsonStringEqualsJsonString(
            json_encode(['Mascot' => 'Tux']),
            json_encode(['Mascot' => 'ux'])
        );
    }
}
$ phpunit JsonStringEqualsJsonStringTest
PHPUnit 8.5.0 by Sebastian Bergmann and contributors.

F

Time: 0 seconds, Memory: 5.00Mb

There was 1 failure:

1) JsonStringEqualsJsonStringTest::testFailure
Failed asserting that two objects are equal.
--- Expected
+++ Actual
@@ @@
 stdClass Object (
 -    'Mascot' => 'Tux'
 +    'Mascot' => 'ux'
)

/home/sb/JsonStringEqualsJsonStringTest.php:5

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

assertLessThan()

assertLessThan(mixed $expected, mixed $actual[, string $message = ''])

Сообщает об ошибке, определенной $message, если значение $actual не меньше значения $expected.

Пример 1.48 Использование assertLessThan()
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;

final class LessThanTest extends TestCase
{
    public function testFailure(): void
    {
        $this->assertLessThan(1, 2);
    }
}
$ phpunit LessThanTest
PHPUnit 8.5.0 by Sebastian Bergmann and contributors.

F

Time: 0 seconds, Memory: 5.00Mb

There was 1 failure:

1) LessThanTest::testFailure
Failed asserting that 2 is less than 1.

/home/sb/LessThanTest.php:6

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

assertLessThanOrEqual()

assertLessThanOrEqual(mixed $expected, mixed $actual[, string $message = ''])

Сообщает об ошибке, определенной $message, если значение $actual не меньше или равно значению $expected.

Пример 1.49 Использование assertLessThanOrEqual()
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;

final class LessThanOrEqualTest extends TestCase
{
    public function testFailure(): void
    {
        $this->assertLessThanOrEqual(1, 2);
    }
}
$ phpunit LessThanOrEqualTest
PHPUnit 8.5.0 by Sebastian Bergmann and contributors.

F

Time: 0 seconds, Memory: 5.25Mb

There was 1 failure:

1) LessThanOrEqualTest::testFailure
Failed asserting that 2 is equal to 1 or is less than 1.

/home/sb/LessThanOrEqualTest.php:6

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

assertNan()

assertNan(mixed $variable[, string $message = ''])

Сообщает об ошибке, определенной $message, если $variable не равно NAN.

Пример 1.50 Использование assertNan()
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;

final class NanTest extends TestCase
{
    public function testFailure(): void
    {
        $this->assertNan(1);
    }
}
$ phpunit NanTest
PHPUnit 8.5.0 by Sebastian Bergmann and contributors.

F

Time: 0 seconds, Memory: 5.00Mb

There was 1 failure:

1) NanTest::testFailure
Failed asserting that 1 is nan.

/home/sb/NanTest.php:6

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

assertNull()

assertNull(mixed $variable[, string $message = ''])

Сообщает об ошибке, определенной $message, если $variable не равно null.

assertNotNull() — это обратное утверждение, принимающее те же аргументы.

Пример 1.51 Использование assertNull()
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;

final class NullTest extends TestCase
{
    public function testFailure(): void
    {
        $this->assertNull('foo');
    }
}
$ phpunit NotNullTest
PHPUnit 8.5.0 by Sebastian Bergmann and contributors.

F

Time: 0 seconds, Memory: 5.00Mb

There was 1 failure:

1) NullTest::testFailure
Failed asserting that 'foo' is null.

/home/sb/NotNullTest.php:6

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

assertObjectHasAttribute()

assertObjectHasAttribute(string $attributeName, object $object[, string $message = ''])

Сообщает об ошибке, определенной $message, если $object->attributeName не существует.

assertObjectNotHasAttribute() — это обратное утверждение, принимающее те же аргументы.

Пример 1.52 Использование assertObjectHasAttribute()
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;

final class ObjectHasAttributeTest extends TestCase
{
    public function testFailure(): void
    {
        $this->assertObjectHasAttribute('foo', new stdClass);
    }
}
$ phpunit ObjectHasAttributeTest
PHPUnit 8.5.0 by Sebastian Bergmann and contributors.

F

Time: 0 seconds, Memory: 4.75Mb

There was 1 failure:

1) ObjectHasAttributeTest::testFailure
Failed asserting that object of class "stdClass" has attribute "foo".

/home/sb/ObjectHasAttributeTest.php:6

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

assertRegExp()

assertRegExp(string $pattern, string $string[, string $message = ''])

Сообщает об ошибке, определенной $message, если $string не соответствует регулярному выражению $pattern.

assertNotRegExp() — это обратное утверждение, принимающее те же аргументы.

Пример 1.53 Использование assertRegExp()
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;

final class RegExpTest extends TestCase
{
    public function testFailure(): void
    {
        $this->assertRegExp('/foo/', 'bar');
    }
}
$ phpunit RegExpTest
PHPUnit 8.5.0 by Sebastian Bergmann and contributors.

F

Time: 0 seconds, Memory: 5.00Mb

There was 1 failure:

1) RegExpTest::testFailure
Failed asserting that 'bar' matches PCRE pattern "/foo/".

/home/sb/RegExpTest.php:6

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

assertStringMatchesFormat()

assertStringMatchesFormat(string $format, string $string[, string $message = ''])

Сообщает об ошибке, определенной $message, если $string не соответствует строке формата $format.

assertStringNotMatchesFormat() — это обратное утверждение, принимающее те же аргументы.

Пример 1.54 Использование assertStringMatchesFormat()
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;

final class StringMatchesFormatTest extends TestCase
{
    public function testFailure(): void
    {
        $this->assertStringMatchesFormat('%i', 'foo');
    }
}
$ phpunit StringMatchesFormatTest
PHPUnit 8.5.0 by Sebastian Bergmann and contributors.

F

Time: 0 seconds, Memory: 5.00Mb

There was 1 failure:

1) StringMatchesFormatTest::testFailure
Failed asserting that 'foo' matches PCRE pattern "/^[+-]?d+$/s".

/home/sb/StringMatchesFormatTest.php:6

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

Строка формата может содержать следующие плейсхолдеры:

  • %e: Представляет разделитель директорий, например, / в Linux.
  • %s: Один или более символов (любой символ или пробел) кроме символа конца строки.
  • %S: Ноль или более символов (любой символ или пробел) кроме символа конца строки.
  • %a: Один или более символов (любой символ или пробел) включая символ конца строки.
  • %A: Ноль или более символов (любой символ или пробел) включая символ конца строки.
  • %w: Ноль или более пробельных символов.
  • %i: Значение целого числа со знаком, например, +3142, -3142.
  • %d: Значение целого числа без знака, например, 123456.
  • %x: Один или более символов в шестнадцатеричном формате. То есть символы в диапазоне 0-9, a-f, A-F.
  • %f: Вещественное число, например: 3.142, -3.142, 3.142E-10, 3.142e+10.
  • %c: Один любой символ.
  • %%: Литеральный символ процента: %.
END_OF_DOCUMENT_MARKER

assertStringMatchesFormatFile()

assertStringMatchesFormatFile(string $formatFile, string $string[, string $message = ''])

Сообщает об ошибке, идентифицируемой по $message, если $string не соответствует содержимому $formatFile.

assertStringNotMatchesFormatFile() — это обратное утверждение и принимает те же аргументы.

Пример 1.55 Использование assertStringMatchesFormatFile()
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;

final class StringMatchesFormatFileTest extends TestCase
{
    public function testFailure(): void
    {
        $this->assertStringMatchesFormatFile('/path/to/expected.txt', 'foo');
    }
}
$ phpunit StringMatchesFormatFileTest
PHPUnit 8.5.0 by Sebastian Bergmann and contributors.

F

Time: 0 seconds, Memory: 5.00Mb

There was 1 failure:

1) StringMatchesFormatFileTest::testFailure
Failed asserting that 'foo' matches PCRE pattern "/^[+-]?d+
$/s".

/home/sb/StringMatchesFormatFileTest.php:6

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

assertSame()

assertSame(mixed $expected, mixed $actual[, string $message = ''])

Сообщает об ошибке, идентифицируемой по $message, если две переменные $expected и $actual не имеют одинакового типа и значения.

assertNotSame() — это обратное утверждение и принимает те же аргументы.

Пример 1.56 Использование assertSame()
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;

final class SameTest extends TestCase
{
    public function testFailure(): void
    {
        $this->assertSame('2204', 2204);
    }
}
$ phpunit SameTest
PHPUnit 8.5.0 by Sebastian Bergmann and contributors.

F

Time: 0 seconds, Memory: 5.00Mb

There was 1 failure:

1) SameTest::testFailure
Failed asserting that 2204 is identical to '2204'.

/home/sb/SameTest.php:6

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

assertSame(object $expected, object $actual[, string $message = ''])

Сообщает об ошибке, идентифицируемой по $message, если две переменные $expected и $actual не ссылаются на один и тот же объект.

Пример 1.57 Использование assertSame() с объектами
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;

final class SameTest extends TestCase
{
    public function testFailure(): void
    {
        $this->assertSame(new stdClass, new stdClass);
    }
}
$ phpunit SameTest
PHPUnit 8.5.0 by Sebastian Bergmann and contributors.

F

Time: 0 seconds, Memory: 4.75Mb

There was 1 failure:

1) SameTest::testFailure
Failed asserting that two variables reference the same object.

/home/sb/SameTest.php:6

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

assertStringEndsWith()

assertStringEndsWith(string $suffix, string $string[, string $message = ''])

Сообщает об ошибке, идентифицируемой по $message, если $string не заканчивается на $suffix.

assertStringEndsNotWith() — это обратное утверждение и принимает те же аргументы.

Пример 1.58 Использование assertStringEndsWith()
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;

final class StringEndsWithTest extends TestCase
{
    public function testFailure(): void
    {
        $this->assertStringEndsWith('suffix', 'foo');
    }
}
$ phpunit StringEndsWithTest
PHPUnit 8.5.0 by Sebastian Bergmann and contributors.

F

Time: 1 second, Memory: 5.00Mb

There was 1 failure:

1) StringEndsWithTest::testFailure
Failed asserting that 'foo' ends with "suffix".

/home/sb/StringEndsWithTest.php:6

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

assertStringEqualsFile()

assertStringEqualsFile(string $expectedFile, string $actualString[, string $message = ''])

Сообщает об ошибке, идентифицируемой по $message, если файл, указанный в $expectedFile, не имеет $actualString в качестве своего содержимого.

assertStringNotEqualsFile() — это обратное утверждение и принимает те же аргументы.

Пример 1.59 Использование assertStringEqualsFile()
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;

final class StringEqualsFileTest extends TestCase
{
    public function testFailure(): void
    {
        $this->assertStringEqualsFile('/home/sb/expected', 'actual');
    }
}
$ phpunit StringEqualsFileTest
PHPUnit 8.5.0 by Sebastian Bergmann and contributors.

F

Time: 0 seconds, Memory: 5.25Mb

There was 1 failure:

1) StringEqualsFileTest::testFailure
Failed asserting that two strings are equal.
--- Expected
+++ Actual
@@ @@
-'expected
-'
+'actual'

/home/sb/StringEqualsFileTest.php:6

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

assertStringStartsWith()

assertStringStartsWith(string $prefix, string $string[, string $message = ''])

Сообщает об ошибке, идентифицируемой по $message, если $string не начинается с $prefix.

assertStringStartsNotWith() — это обратное утверждение и принимает те же аргументы.

Пример 1.60 Использование assertStringStartsWith()
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;

final class StringStartsWithTest extends TestCase
{
    public function testFailure(): void
    {
        $this->assertStringStartsWith('prefix', 'foo');
    }
}
$ phpunit StringStartsWithTest
PHPUnit 8.5.0 by Sebastian Bergmann and contributors.

F

Time: 0 seconds, Memory: 5.00Mb

There was 1 failure:

1) StringStartsWithTest::testFailure
Failed asserting that 'foo' starts with "prefix".

/home/sb/StringStartsWithTest.php:6

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

assertThat()

Более сложные утверждения можно сформулировать, используя классы PHPUnit\Framework\Constraint. Они могут быть оценены с помощью метода assertThat(). Пример 1.61 демонстрирует, как использовать ограничения logicalNot() и equalTo() для выражения того же утверждения, что и assertNotEquals().

assertThat(mixed $value, PHPUnit\Framework\Constraint $constraint[, $message = ''])

Сообщает об ошибке, идентифицируемой по $message, если $value не соответствует $constraint.

Пример 1.61 Использование assertThat()
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;

final class BiscuitTest extends TestCase
{
    public function testEquals(): void
    {
        $theBiscuit = new Biscuit('Ginger');
        $myBiscuit  = new Biscuit('Ginger');

        $this->assertThat(
          $theBiscuit,
          $this->logicalNot(
            $this->equalTo($myBiscuit)
          )
        );
    }
}

Таблица 1.1 показывает доступные классы PHPUnit\Framework\Constraint.

Таблица 1.1 Ограничения
Ограничение Значение
PHPUnit\Framework\Constraint\Attribute attribute(PHPUnit\Framework\Constraint $constraint, $attributeName) Ограничение, которое применяет другое ограничение к атрибуту класса или объекта.
PHPUnit\Framework\Constraint\IsAnything anything() Ограничение, которое принимает любое входное значение.
PHPUnit\Framework\Constraint\ArrayHasKey arrayHasKey(mixed $key) Ограничение, которое утверждает, что массив содержит указанный ключ.
PHPUnit\Framework\Constraint\TraversableContains contains(mixed $value) Ограничение, которое утверждает, что массив или объект, реализующий интерфейс Iterator, содержит заданное значение.
PHPUnit\Framework\Constraint\TraversableContainsOnly containsOnly(string $type) Ограничение, которое утверждает, что массив или объект, реализующий интерфейс Iterator, содержит только значения заданного типа.
PHPUnit\Framework\Constraint\TraversableContainsOnly containsOnlyInstancesOf(string $classname) Ограничение, которое утверждает, что массив или объект, реализующий интерфейс Iterator, содержит только экземпляры заданного класса.
PHPUnit\Framework\Constraint\IsEqual equalTo($value, $delta = 0, $maxDepth = 10) Ограничение, которое проверяет, равны ли два значения.
PHPUnit\Framework\Constraint\Attribute attributeEqualTo($attributeName, $value, $delta = 0, $maxDepth = 10) Ограничение, которое проверяет, равно ли значение атрибуту класса или объекта.
PHPUnit\Framework\Constraint\DirectoryExists directoryExists() Ограничение, которое проверяет существование каталога.
PHPUnit\Framework\Constraint\FileExists fileExists() Ограничение, которое проверяет существование файла.
PHPUnit\Framework\Constraint\IsReadable isReadable() Ограничение, которое проверяет, доступен ли файл для чтения.
PHPUnit\Framework\Constraint\IsWritable isWritable() Ограничение, которое проверяет, доступен ли файл для записи.
PHPUnit\Framework\Constraint\GreaterThan greaterThan(mixed $value) Ограничение, которое утверждает, что значение больше заданного значения.
PHPUnit\Framework\Constraint\LogicalOr greaterThanOrEqual(mixed $value) Ограничение, которое утверждает, что значение больше или равно заданному значению.
PHPUnit\Framework\Constraint\ClassHasAttribute classHasAttribute(string $attributeName) Ограничение, которое утверждает, что класс имеет заданный атрибут.
PHPUnit\Framework\Constraint\ClassHasStaticAttribute classHasStaticAttribute(string $attributeName) Ограничение, которое утверждает, что класс имеет заданный статический атрибут.
PHPUnit\Framework\Constraint\ObjectHasAttribute objectHasAttribute(string $attributeName) Ограничение, которое утверждает, что объект имеет заданный атрибут.
PHPUnit\Framework\Constraint\IsIdentical identicalTo(mixed $value) Ограничение, которое утверждает, что одно значение идентично другому.
PHPUnit\Framework\Constraint\IsFalse isFalse() Ограничение, которое утверждает, что значение false.
PHPUnit\Framework\Constraint\IsInstanceOf isInstanceOf(string $className) Ограничение, которое утверждает, что объект является экземпляром данного класса.
PHPUnit\Framework\Constraint\IsNull isNull() Ограничение, которое утверждает, что значение null.
PHPUnit\Framework\Constraint\IsTrue isTrue() Ограничение, которое утверждает, что значение true.
PHPUnit\Framework\Constraint\IsType isType(string $type) Ограничение, которое утверждает, что значение имеет указанный тип.
PHPUnit\Framework\Constraint\LessThan lessThan(mixed $value) Ограничение, которое утверждает, что значение меньше заданного значения.
PHPUnit\Framework\Constraint\LogicalOr lessThanOrEqual(mixed $value) Ограничение, которое утверждает, что значение меньше или равно заданному значению.
logicalAnd() Логическое И.
logicalNot(PHPUnit\Framework\Constraint $constraint) Логическое НЕ.
logicalOr() Логическое ИЛИ.
logicalXor() Логическое ИСКЛЮЧАЮЩЕЕ ИЛИ.
PHPUnit\Framework\Constraint\PCREMatch matchesRegularExpression(string $pattern) Ограничение, которое утверждает, что строка соответствует регулярному выражению.
PHPUnit\Framework\Constraint\StringContains stringContains(string $string, bool $case) Ограничение, которое утверждает, что строка содержит заданную строку.
PHPUnit\Framework\Constraint\StringEndsWith stringEndsWith(string $suffix) Ограничение, которое утверждает, что строка заканчивается заданным суффиксом.
PHPUnit\Framework\Constraint\StringStartsWith stringStartsWith(string $prefix) Ограничение, которое утверждает, что строка начинается с заданного префикса.

assertTrue()

assertTrue(bool $condition[, string $message = ''])

Сообщает об ошибке, идентифицируемой по $message, если $condition является false.

assertNotTrue() — это обратное утверждение и принимает те же аргументы.

Пример 1.62 Использование assertTrue()
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;

final class TrueTest extends TestCase
{
    public function testFailure(): void
    {
        $this->assertTrue(false);
    }
}
$ phpunit TrueTest
PHPUnit 8.5.0 by Sebastian Bergmann and contributors.

F

Time: 0 seconds, Memory: 5.00Mb

There was 1 failure:

1) TrueTest::testFailure
Failed asserting that false is true.

/home/sb/TrueTest.php:6

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

assertXmlFileEqualsXmlFile()

assertXmlFileEqualsXmlFile(string $expectedFile, string $actualFile[, string $message = ''])

Сообщает об ошибке, идентифицированной $message, если XML-документ в $actualFile не равен XML-документу в $expectedFile.

assertXmlFileNotEqualsXmlFile() является обратной операцией для данной проверки и принимает те же аргументы.

Пример 1.63 Использование assertXmlFileEqualsXmlFile()
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;

final class XmlFileEqualsXmlFileTest extends TestCase
{
    public function testFailure(): void
    {
        $this->assertXmlFileEqualsXmlFile(
          '/home/sb/expected.xml', '/home/sb/actual.xml');
    }
}
$ phpunit XmlFileEqualsXmlFileTest
PHPUnit 8.5.0 by Sebastian Bergmann and contributors.

F

Time: 0 seconds, Memory: 5.25Mb

There was 1 failure:

1) XmlFileEqualsXmlFileTest::testFailure
Failed asserting that two DOM documents are equal.
--- Expected
+++ Actual
@@ @@
 <?xml version="1.0"?>
 <foo>
-  <bar/>
+  <baz/>
 </foo>

/home/sb/XmlFileEqualsXmlFileTest.php:7

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

assertXmlStringEqualsXmlFile()

assertXmlStringEqualsXmlFile(string $expectedFile, string $actualXml[, string $message = ''])

Сообщает об ошибке, идентифицированной $message, если XML-документ в $actualXml не равен XML-документу в $expectedFile.

assertXmlStringNotEqualsXmlFile() является обратной операцией для данной проверки и принимает те же аргументы.

Пример 1.64 Использование assertXmlStringEqualsXmlFile()
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;

final class XmlStringEqualsXmlFileTest extends TestCase
{
    public function testFailure(): void
    {
        $this->assertXmlStringEqualsXmlFile(
          '/home/sb/expected.xml', '<foo><baz/></foo>');
    }
}
$ phpunit XmlStringEqualsXmlFileTest
PHPUnit 8.5.0 by Sebastian Bergmann and contributors.

F

Time: 0 seconds, Memory: 5.25Mb

There was 1 failure:

1) XmlStringEqualsXmlFileTest::testFailure
Failed asserting that two DOM documents are equal.
--- Expected
+++ Actual
@@ @@
 <?xml version="1.0"?>
 <foo>
-  <bar/>
+  <baz/>
 </foo>

/home/sb/XmlStringEqualsXmlFileTest.php:7

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

assertXmlStringEqualsXmlString()

assertXmlStringEqualsXmlString(string $expectedXml, string $actualXml[, string $message = ''])

Сообщает об ошибке, идентифицированной $message, если XML-документ в $actualXml не равен XML-документу в $expectedXml.

assertXmlStringNotEqualsXmlString() является обратной операцией для данной проверки и принимает те же аргументы.

Пример 1.65 Использование assertXmlStringEqualsXmlString()
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;

final class XmlStringEqualsXmlStringTest extends TestCase
{
    public function testFailure(): void
    {
        $this->assertXmlStringEqualsXmlString(
          '<foo><bar/></foo>', '<foo><baz/></foo>');
    }
}
$ phpunit XmlStringEqualsXmlStringTest
PHPUnit 8.5.0 by Sebastian Bergmann and contributors.

F

Time: 0 seconds, Memory: 5.00Mb

There was 1 failure:

1) XmlStringEqualsXmlStringTest::testFailure
Failed asserting that two DOM documents are equal.
--- Expected
+++ Actual
@@ @@
 <?xml version="1.0"?>
 <foo>
-  <bar/>
+  <baz/>
 </foo>

/home/sb/XmlStringEqualsXmlStringTest.php:7

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

© 2005–2020 Sebastian Bergmann
Licensed under the Creative Commons Attribution 3.0 Unported License.
https://phpunit.readthedocs.io/en/8.5/assertions.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API