1. Утверждения

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

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

Утверждения 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
use PHPUnit\Framework\TestCase;

class ArrayHasKeyTest extends TestCase
{
    public function testFailure()
    {
        $this->assertArrayHasKey('foo', ['bar' => 'baz']);
    }
}
$ phpunit ArrayHasKeyTest
PHPUnit |version|.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
use PHPUnit\Framework\TestCase;

class ClassHasAttributeTest extends TestCase
{
    public function testFailure()
    {
        $this->assertClassHasAttribute('foo', stdClass::class);
    }
}
$ phpunit ClassHasAttributeTest
PHPUnit |version|.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
use PHPUnit\Framework\TestCase;

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

F

Time: 0 seconds, Memory: 5.00Mb

There was 1 failure:

1) Epilog\EpilogTest::testNoFollowOption
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
use PHPUnit\Framework\TestCase;

class ClassHasStaticAttributeTest extends TestCase
{
    public function testFailure()
    {
        $this->assertClassHasStaticAttribute('foo', stdClass::class);
    }
}
$ phpunit ClassHasStaticAttributeTest
PHPUnit |version|.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, Iterator|array $haystack[, string $message = ''])

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

assertNotContains() — это противоположный этому утверждению, принимающий те же самые аргументы.

assertAttributeContains() и assertAttributeNotContains() — удобные обёртки, которые используют общедоступный (public), защищённый (protected) или закрытый (private) атрибут класса или объекта в качестве параметра haystack.

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

class ContainsTest extends TestCase
{
    public function testFailure()
    {
        $this->assertContains(4, [1, 2, 3]);
    }
}
$ phpunit ContainsTest
PHPUnit |version|.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.

assertContains(string $needle, string $haystack[, string $message = '', boolean $ignoreCase = false])

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

Если $ignoreCase равен true, тест будет нечувствителен к регистру.

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

class ContainsTest extends TestCase
{
    public function testFailure()
    {
        $this->assertContains('baz', 'foobar');
    }
}
$ phpunit ContainsTest
PHPUnit |version|.0 by Sebastian Bergmann and contributors.

F

Time: 0 seconds, Memory: 5.00Mb

There was 1 failure:

1) ContainsTest::testFailure
Failed asserting that 'foobar' contains "baz".

/home/sb/ContainsTest.php:6

FAILURES!
Tests: 1, Assertions: 1, Failures: 1.
Пример 1.7 Использование assertContains() с $ignoreCase
<?php
use PHPUnit\Framework\TestCase;

class ContainsTest extends TestCase
{
    public function testFailure()
    {
        $this->assertContains('foo', 'FooBar');
    }

    public function testOK()
    {
        $this->assertContains('foo', 'FooBar', '', true);
    }
}
$ phpunit ContainsTest
PHPUnit |version|.0 by Sebastian Bergmann and contributors.

F.

Time: 0 seconds, Memory: 2.75Mb

There was 1 failure:

1) ContainsTest::testFailure
Failed asserting that 'FooBar' contains "foo".

/home/sb/ContainsTest.php:6

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

assertContainsOnly()

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

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

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

assertNotContainsOnly() — это противоположный этому утверждению, принимающий те же самые аргументы.

assertAttributeContainsOnly() и assertAttributeNotContainsOnly() — удобные обёртки, которые используют общедоступный (public), защищённый (protected) или закрытый (private) атрибут класса или объекта в качестве параметра haystack.

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

class ContainsOnlyTest extends TestCase
{
    public function testFailure()
    {
        $this->assertContainsOnly('string', ['1', '2', 3]);
    }
}
$ phpunit ContainsOnlyTest
PHPUnit |version|.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
use PHPUnit\Framework\TestCase;

class ContainsOnlyInstancesOfTest extends TestCase
{
    public function testFailure()
    {
        $this->assertContainsOnlyInstancesOf(
            Foo::class,
            [new Foo, new Bar, new Foo]
        );
    }
}
$ phpunit ContainsOnlyInstancesOfTest
PHPUnit |version|.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
use PHPUnit\Framework\TestCase;

class CountTest extends TestCase
{
    public function testFailure()
    {
        $this->assertCount(0, ['foo']);
    }
}
$ phpunit CountTest
PHPUnit |version|.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
use PHPUnit\Framework\TestCase;

class DirectoryExistsTest extends TestCase
{
    public function testFailure()
    {
        $this->assertDirectoryExists('/path/to/directory');
    }
}
$ phpunit DirectoryExistsTest
PHPUnit |version|.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
use PHPUnit\Framework\TestCase;

class DirectoryIsReadableTest extends TestCase
{
    public function testFailure()
    {
        $this->assertDirectoryIsReadable('/path/to/directory');
    }
}
$ phpunit DirectoryIsReadableTest
PHPUnit |version|.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
use PHPUnit\Framework\TestCase;

class DirectoryIsWritableTest extends TestCase
{
    public function testFailure()
    {
        $this->assertDirectoryIsWritable('/path/to/directory');
    }
}
$ phpunit DirectoryIsWritableTest
PHPUnit |version|.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() — это противоположный этому утверждению, принимающий те же самые аргументы.

assertAttributeEmpty() и assertAttributeNotEmpty() — удобные обёртки, которые могут применяться к общедоступному (public), защищённому (protected) или закрытому (private) атрибуту класса или объекта.

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

class EmptyTest extends TestCase
{
    public function testFailure()
    {
        $this->assertEmpty(['foo']);
    }
}
$ phpunit EmptyTest
PHPUnit |version|.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
use PHPUnit\Framework\TestCase;

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

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

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

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

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

    public function testFailureWithDifferentChildrenCount()
    {
        $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()
    {
        $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 |version|.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() — это противоположный этому утверждению, принимающий те же самые аргументы.

assertAttributeEquals() and assertAttributeNotEquals() — удобные обёртки, которые используют общедоступный (public), защищённый (protected) или закрытый (private) атрибут класса или объекта в качестве фактического значения.

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

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

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

    public function testFailure3()
    {
        $this->assertEquals("foo\nbar\nbaz\n", "foo\nbah\nbaz\n");
    }
}
$ phpunit EqualsTest
PHPUnit |version|.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(float $expected, float $actual[, string $message = '', float $delta = 0])

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

Прочитайте «What Every Computer Scientist Should Know About Floating-Point Arithmetic» для понимания, зачем требуется $delta.

Пример 1.17 Использование assertEquals() с числом с плавающей точкой
<?php
use PHPUnit\Framework\TestCase;

class EqualsTest extends TestCase
{
    public function testSuccess()
    {
        $this->assertEquals(1.0, 1.1, '', 0.1);
    }

    public function testFailure()
    {
        $this->assertEquals(1.0, 1.1);
    }
}
$ phpunit EqualsTest
PHPUnit |version|.0 by Sebastian Bergmann and contributors.

.F

Time: 0 seconds, Memory: 5.75Mb

There was 1 failure:

1) EqualsTest::testFailure
Failed asserting that 1.1 matches expected 1.0.

/home/sb/EqualsTest.php:11

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

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

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

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

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

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

        $this->assertEquals($expected, $actual);
    }
}
$ phpunit EqualsTest
PHPUnit |version|.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.19 Использование assertEquals() с объектами
<?php
use PHPUnit\Framework\TestCase;

class EqualsTest extends TestCase
{
    public function testFailure()
    {
        $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 |version|.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.20 Использование assertEquals() с массивом
<?php
use PHPUnit\Framework\TestCase;

class EqualsTest extends TestCase
{
    public function testFailure()
    {
        $this->assertEquals(['a', 'b', 'c'], ['a', 'c', 'd']);
    }
}
$ phpunit EqualsTest
PHPUnit |version|.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.

assertFalse()

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

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

assertNotFalse() — это противоположный этому утверждению, принимающий те же самые аргументы.

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

class FalseTest extends TestCase
{
    public function testFailure()
    {
        $this->assertFalse(true);
    }
}
$ phpunit FalseTest
PHPUnit |version|.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.22 Использование assertFileEquals()
<?php
use PHPUnit\Framework\TestCase;

class FileEqualsTest extends TestCase
{
    public function testFailure()
    {
        $this->assertFileEquals('/home/sb/expected', '/home/sb/actual');
    }
}
$ phpunit FileEqualsTest
PHPUnit |version|.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.23 Использование assertFileExists()
<?php
use PHPUnit\Framework\TestCase;

class FileExistsTest extends TestCase
{
    public function testFailure()
    {
        $this->assertFileExists('/path/to/file');
    }
}
$ phpunit FileExistsTest
PHPUnit |version|.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.24 Использование assertFileIsReadable()
<?php
use PHPUnit\Framework\TestCase;

class FileIsReadableTest extends TestCase
{
    public function testFailure()
    {
        $this->assertFileIsReadable('/path/to/file');
    }
}
$ phpunit FileIsReadableTest
PHPUnit |version|.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.25 Использование assertFileIsWritable()
<?php
use PHPUnit\Framework\TestCase;

class FileIsWritableTest extends TestCase
{
    public function testFailure()
    {
        $this->assertFileIsWritable('/path/to/file');
    }
}
$ phpunit FileIsWritableTest
PHPUnit |version|.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.

assertAttributeGreaterThan() - удобная обёртка, которая использует общедоступный (public), защищённый (protected) или закрытый (private) атрибут класса или объекта в качестве фактического значения.

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

class GreaterThanTest extends TestCase
{
    public function testFailure()
    {
        $this->assertGreaterThan(2, 1);
    }
}
$ phpunit GreaterThanTest
PHPUnit |version|.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.

assertAttributeGreaterThanOrEqual() - удобная обёртка, которая использует общедоступный (public), защищённый (protected) или закрытый (private) атрибут класса или объекта в качестве фактического значения.

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

class GreatThanOrEqualTest extends TestCase
{
    public function testFailure()
    {
        $this->assertGreaterThanOrEqual(2, 1);
    }
}
$ phpunit GreaterThanOrEqualTest
PHPUnit |version|.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.28 Использование assertInfinite()
<?php
use PHPUnit\Framework\TestCase;

class InfiniteTest extends TestCase
{
    public function testFailure()
    {
        $this->assertInfinite(1);
    }
}
$ phpunit InfiniteTest
PHPUnit |version|.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() — это противоположный этому утверждению, принимающий те же самые аргументы.

assertAttributeInstanceOf() и assertAttributeNotInstanceOf() - удобные обёртки, которые могут применяться к общедоступному (public), защищённому (protected) или закрытому (private) атрибуту класса или объекта.

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

class InstanceOfTest extends TestCase
{
    public function testFailure()
    {
        $this->assertInstanceOf(RuntimeException::class, new Exception);
    }
}
$ phpunit InstanceOfTest
PHPUnit |version|.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.

assertInternalType()

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

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

assertNotInternalType() — это противоположный этому утверждению, принимающий те же самые аргументы.

assertAttributeInternalType() и assertAttributeNotInternalType() — удобные обёртки, которые могут применяться к общедоступному (public), защищённому (protected) или закрытому (private) атрибуту класса или объекта.

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

class InternalTypeTest extends TestCase
{
    public function testFailure()
    {
        $this->assertInternalType('string', 42);
    }
}
$ phpunit InternalTypeTest
PHPUnit |version|.0 by Sebastian Bergmann and contributors.

F

Time: 0 seconds, Memory: 5.00Mb

There was 1 failure:

1) InternalTypeTest::testFailure
Failed asserting that 42 is of type "string".

/home/sb/InternalTypeTest.php:6

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

assertIsReadable()

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

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

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

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

class IsReadableTest extends TestCase
{
    public function testFailure()
    {
        $this->assertIsReadable('/path/to/unreadable');
    }
}
$ phpunit IsReadableTest
PHPUnit |version|.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.32 Использование assertIsWritable()
<?php
use PHPUnit\Framework\TestCase;

class IsWritableTest extends TestCase
{
    public function testFailure()
    {
        $this->assertIsWritable('/path/to/unwritable');
    }
}
$ phpunit IsWritableTest
PHPUnit |version|.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.33 Использование assertJsonFileEqualsJsonFile()
<?php
use PHPUnit\Framework\TestCase;

class JsonFileEqualsJsonFileTest extends TestCase
{
    public function testFailure()
    {
        $this->assertJsonFileEqualsJsonFile(
          'path/to/fixture/file', 'path/to/actual/file');
    }
}
$ phpunit JsonFileEqualsJsonFileTest
PHPUnit |version|.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.34 Использование assertJsonStringEqualsJsonFile()
<?php
use PHPUnit\Framework\TestCase;

class JsonStringEqualsJsonFileTest extends TestCase
{
    public function testFailure()
    {
        $this->assertJsonStringEqualsJsonFile(
            'path/to/fixture/file', json_encode(['Mascot' => 'ux'])
        );
    }
}
$ phpunit JsonStringEqualsJsonFileTest
PHPUnit |version|.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.35 Использование assertJsonStringEqualsJsonString()
<?php
use PHPUnit\Framework\TestCase;

class JsonStringEqualsJsonStringTest extends TestCase
{
    public function testFailure()
    {
        $this->assertJsonStringEqualsJsonString(
            json_encode(['Mascot' => 'Tux']),
            json_encode(['Mascot' => 'ux'])
        );
    }
}
$ phpunit JsonStringEqualsJsonStringTest
PHPUnit |version|.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.

assertAttributeLessThan() — удобная обёртка, которая использует общедоступный (public), защищённый (protected) или закрытый (private) атрибут класса или объекта в качестве фактического значения.

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

class LessThanTest extends TestCase
{
    public function testFailure()
    {
        $this->assertLessThan(1, 2);
    }
}
$ phpunit LessThanTest
PHPUnit |version|.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.

assertAttributeLessThanOrEqual() — удобная обёртка, которая использует общедоступный (public), защищённый (protected) или закрытый (private) атрибут класса или объекта в качестве фактического значения.

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

class LessThanOrEqualTest extends TestCase
{
    public function testFailure()
    {
        $this->assertLessThanOrEqual(1, 2);
    }
}
$ phpunit LessThanOrEqualTest
PHPUnit |version|.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.38 Использование assertNan()
<?php
use PHPUnit\Framework\TestCase;

class NanTest extends TestCase
{
    public function testFailure()
    {
        $this->assertNan(1);
    }
}
$ phpunit NanTest
PHPUnit |version|.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.39 Использование assertNull()
<?php
use PHPUnit\Framework\TestCase;

class NullTest extends TestCase
{
    public function testFailure()
    {
        $this->assertNull('foo');
    }
}
$ phpunit NotNullTest
PHPUnit |version|.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.40 Использование assertObjectHasAttribute()
<?php
use PHPUnit\Framework\TestCase;

class ObjectHasAttributeTest extends TestCase
{
    public function testFailure()
    {
        $this->assertObjectHasAttribute('foo', new stdClass);
    }
}
$ phpunit ObjectHasAttributeTest
PHPUnit |version|.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.41 Использование assertRegExp()
<?php
use PHPUnit\Framework\TestCase;

class RegExpTest extends TestCase
{
    public function testFailure()
    {
        $this->assertRegExp('/foo/', 'bar');
    }
}
$ phpunit RegExpTest
PHPUnit |version|.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.42 Использование assertStringMatchesFormat()
<?php
use PHPUnit\Framework\TestCase;

class StringMatchesFormatTest extends TestCase
{
    public function testFailure()
    {
        $this->assertStringMatchesFormat('%i', 'foo');
    }
}
$ phpunit StringMatchesFormatTest
PHPUnit |version|.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: Один символ любого типа.

assertStringMatchesFormatFile()

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

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

assertStringNotMatchesFormatFile() — это противоположный этому утверждению, принимающий те же самые аргументы.

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

class StringMatchesFormatFileTest extends TestCase
{
    public function testFailure()
    {
        $this->assertStringMatchesFormatFile('/path/to/expected.txt', 'foo');
    }
}
$ phpunit StringMatchesFormatFileTest
PHPUnit |version|.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() — это противоположный этому утверждению, принимающий те же самые аргументы.

assertAttributeSame() и assertAttributeNotSame() — удобные обёртки, которые используют общедоступный (public), защищённый (protected) или закрытый (private) атрибут класса или объекта в качестве фактического значения.

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

class SameTest extends TestCase
{
    public function testFailure()
    {
        $this->assertSame('2204', 2204);
    }
}
$ phpunit SameTest
PHPUnit |version|.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.45 Использование assertSame() с объектами
<?php
use PHPUnit\Framework\TestCase;

class SameTest extends TestCase
{
    public function testFailure()
    {
        $this->assertSame(new stdClass, new stdClass);
    }
}
$ phpunit SameTest
PHPUnit |version|.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.46 Использование assertStringEndsWith()
<?php
use PHPUnit\Framework\TestCase;

class StringEndsWithTest extends TestCase
{
    public function testFailure()
    {
        $this->assertStringEndsWith('suffix', 'foo');
    }
}
$ phpunit StringEndsWithTest
PHPUnit |version|.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.47 Использование assertStringEqualsFile()
<?php
use PHPUnit\Framework\TestCase;

class StringEqualsFileTest extends TestCase
{
    public function testFailure()
    {
        $this->assertStringEqualsFile('/home/sb/expected', 'actual');
    }
}
$ phpunit StringEqualsFileTest
PHPUnit |version|.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.48 Использование assertStringStartsWith()
<?php
use PHPUnit\Framework\TestCase;

class StringStartsWithTest extends TestCase
{
    public function testFailure()
    {
        $this->assertStringStartsWith('prefix', 'foo');
    }
}
$ phpunit StringStartsWithTest
PHPUnit |version|.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.49 показывает, как ограничения logicalNot() и equalTo() могут использоваться для выражения того же утверждения, что и assertNotEquals().

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

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

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

class BiscuitTest extends TestCase
{
    public function testEquals()
    {
        $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) Ограничение, которое утверждает, что массив (array) имеет заданный ключ.
PHPUnit\Framework\Constraint\TraversableContains contains(mixed $value) Ограничение, которое утверждает, что массив (array) или объект, реализующий интерфейс Iterator, содержит заданное значение.
PHPUnit\Framework\Constraint\TraversableContainsOnly containsOnly(string $type) Ограничение, которое утверждает, что массив (array) или объект, реализующий интерфейс Iterator, содержит только значения заданного типа
PHPUnit\Framework\Constraint\TraversableContainsOnly containsOnlyInstancesOf(string $classname) Ограничение, которое утверждает, что массив (array) или объект, реализующий интерфейс 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\Or 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\Or lessThanOrEqual(mixed $value) Ограничение, которое утверждает, что значение меньше или равно заданному значению.
logicalAnd() Логическое И (AND).
logicalNot(PHPUnit\Framework\Constraint $constraint) Логическое НЕ (NOT).
logicalOr() Логическое ИЛИ (OR).
logicalXor() Логическое исключающее ИЛИ (XOR).
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.50 Использование assertTrue()
<?php
use PHPUnit\Framework\TestCase;

class TrueTest extends TestCase
{
    public function testFailure()
    {
        $this->assertTrue(false);
    }
}
$ phpunit TrueTest
PHPUnit |version|.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.

assertXmlFileEqualsXmlFile()

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

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

assertXmlFileNotEqualsXmlFile() — это противоположный этому утверждению, принимающий те же самые аргументы.

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

class XmlFileEqualsXmlFileTest extends TestCase
{
    public function testFailure()
    {
        $this->assertXmlFileEqualsXmlFile(
          '/home/sb/expected.xml', '/home/sb/actual.xml');
    }
}
$ phpunit XmlFileEqualsXmlFileTest
PHPUnit |version|.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.52 Использование assertXmlStringEqualsXmlFile()
<?php
use PHPUnit\Framework\TestCase;

class XmlStringEqualsXmlFileTest extends TestCase
{
    public function testFailure()
    {
        $this->assertXmlStringEqualsXmlFile(
          '/home/sb/expected.xml', '<foo><baz/></foo>');
    }
}
$ phpunit XmlStringEqualsXmlFileTest
PHPUnit |version|.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.53 Использование assertXmlStringEqualsXmlString()
<?php
use PHPUnit\Framework\TestCase;

class XmlStringEqualsXmlStringTest extends TestCase
{
    public function testFailure()
    {
        $this->assertXmlStringEqualsXmlString(
          '<foo><bar/></foo>', '<foo><baz/></foo>');
    }
}
$ phpunit XmlStringEqualsXmlStringTest
PHPUnit |version|.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.