Утверждения
В этом приложении перечислены различные методы утверждений, которые доступны.
Статические и нестатические методы утверждений
Утверждения PHPUnit реализованы в PHPUnit\Framework\Assert. PHPUnit\Framework\TestCase наследуется от PHPUnit\Framework\Assert.
Методы утверждений объявлены статическими и могут вызываться из любого контекста, например, используя PHPUnit\Framework\Assert::assertTrue(), или используя $this->assertTrue() или self::assertTrue(), например, в классе, который расширяет PHPUnit\Framework\TestCase. Вы даже можете использовать обёртки глобальных функций, такие как assertTrue().
Часто задаваемый вопрос, особенно для разработчиков, новых для PHPUnit, заключается в том, является ли использование $this->assertTrue() или self::assertTrue(), например, «правильным способом» вызова утверждения. Короткий ответ: нет правильного способа. И нет неправильного способа. Это вопрос личных предпочтений.
Для большинства людей просто «логичнее» использовать $this->assertTrue(), потому что метод теста вызывается на объекте теста. Тот факт, что методы утверждений объявлены статическими, позволяет (повторно) использовать их за пределами области объекта теста. Наконец, обёртки глобальных функций позволяют разработчикам писать меньше символов (assertTrue() вместо $this->assertTrue() или self::assertTrue()).
assertArrayHasKey()
assertArrayHasKey(mixed $key, array $array[, string $message = ''])
Отправляет сообщение об ошибке, идентифицированное $message, если $array не имеет $key.
assertArrayNotHasKey() - это обратное утверждение и принимает те же аргументы.
<?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 9.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() - это обратное утверждение и принимает те же аргументы.
<?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 9.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.
assertClassHasStaticAttribute()
assertClassHasStaticAttribute(string $attributeName, string $className[, string $message = ''])
Отправляет сообщение об ошибке, идентифицированное $message, если $className::attributeName не существует.
assertClassNotHasStaticAttribute() - это обратное утверждение и принимает те же аргументы.
<?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 9.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() - это обратное утверждение и принимает те же аргументы.
<?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 9.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() - это обратное утверждение и принимает те же аргументы.
<?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 9.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() - это обратное утверждение и принимает те же аргументы.
<?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 9.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() - обратное утверждение и принимает те же аргументы.
<?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 9.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.
<?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 9.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() - обратное утверждение и принимает те же аргументы.
<?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 9.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 не существует.
assertDirectoryDoesNotExist() - обратное утверждение и принимает те же аргументы.
<?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 9.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, не является директорией или не доступна для чтения.
assertDirectoryIsNotReadable() - обратное утверждение и принимает те же аргументы.
<?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 9.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 не является директорией или не доступна для записи.
assertDirectoryIsNotWritable() - обратное утверждение и принимает те же аргументы.
<?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 9.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() - обратное утверждение и принимает те же аргументы.
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;
final class EmptyTest extends TestCase
{
public function testFailure(): void
{
$this->assertEmpty(['foo']);
}
}
$ phpunit EmptyTest PHPUnit 9.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.
assertEquals()
assertEquals(mixed $expected, mixed $actual[, string $message = ''])
Сообщает об ошибке, идентифицированной по $message, если две переменные $expected и $actual не равны.
assertNotEquals() является обратным утверждением и принимает те же аргументы.
<?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 9.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, не равны.
<?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 9.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 значения атрибутов не равны.
<?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 9.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 не равны.
<?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 9.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() является обратным утверждением и принимает те же аргументы.
<?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 9.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() является обратным утверждением и принимает те же аргументы.
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;
final class EqualsIgnoringCaseTest extends TestCase
{
public function testFailure()
{
$this->assertEqualsIgnoringCase('foo', 'BAR');
}
}
$ phpunit EqualsIgnoringCaseTest PHPUnit 9.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() является обратным утверждением и принимает те же аргументы.
<?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 9.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.
assertObjectEquals()
assertObjectEquals(object $expected, object $actual, string $method = 'equals', string $message = ''])
Сообщает об ошибке, идентифицированной по $message, если $actual не равно $expected согласно $actual->$method($expected).
Не рекомендуется использовать assertEquals() (и его обратное утверждение assertNotEquals()) для объектов без регистрации пользовательского компаратора, настраивающего сравнение объектов. К сожалению, однако, реализация пользовательских компараторов для каждого объекта, который вы хотите проверить в своих тестах, является неудобной.
Наиболее распространённый случай использования пользовательских компараторов — это Value Objects. Эти объекты обычно имеют метод equals(self $other): bool (или метод, похожий на него, но с другим именем) для сравнения двух экземпляров типа Value Object. assertObjectEquals() упрощает пользовательское сравнение объектов для этого распространённого случая:
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;
final class SomethingThatUsesEmailTest extends TestCase
{
public function testSomething(): void
{
$a = new Email('user@example.org');
$b = new Email('user@example.org');
$c = new Email('user@example.com');
// This passes
$this->assertObjectEquals($a, $b);
// This fails
$this->assertObjectEquals($a, $c);
}
}
<?php declare(strict_types=1);
final class Email
{
private string $email;
public function __construct(string $email)
{
$this->ensureIsValidEmail($email);
$this->email = $email;
}
public function asString(): string
{
return $this->email;
}
public function equals(self $other): bool
{
return $this->asString() === $other->asString();
}
private function ensureIsValidEmail(string $email): void
{
// ...
}
}
$ phpunit EqualsTest PHPUnit 9.5.0 by Sebastian Bergmann and contributors. F 1 / 1 (100%) Time: 00:00.017, Memory: 4.00 MB There was 1 failure: 1) SomethingThatUsesEmailTest::testSomething Failed asserting that two objects are equal. The objects are not equal according to Email::equals(). /home/sb/SomethingThatUsesEmailTest.php:16 FAILURES! Tests: 1, Assertions: 2, Failures: 1.
Обратите внимание:
- Метод с именем
$methodдолжен существовать в объекте$actual - Метод должен принимать ровно один аргумент
- Соответствующий параметр должен иметь объявленный тип
- Объект
$expectedдолжен быть совместим с этим объявленным типом - Метод должен иметь объявленный тип возвращаемого значения
bool
Если любое из вышеупомянутых предположений не выполняется или если $actual->$method($expected) возвращает false, то утверждение не выполняется.
assertFalse()
assertFalse(bool $condition[, string $message = ''])
Сообщает об ошибке, идентифицированной по $message, если $condition равно true.
assertNotFalse() является обратным утверждением и принимает те же аргументы.
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;
final class FalseTest extends TestCase
{
public function testFailure(): void
{
$this->assertFalse(true);
}
}
$ phpunit FalseTest PHPUnit 9.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() является обратным утверждением и принимает те же аргументы.
<?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 9.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, не существует.
assertFileDoesNotExist() является обратным утверждением и принимает те же аргументы.
<?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 9.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, не является файлом или не доступен для чтения.
assertFileIsNotReadable() является обратным утверждением и принимает те же аргументы.
<?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 9.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, не является файлом или не доступен для записи.
assertFileIsNotWritable() является обратным утверждением и принимает те же аргументы.
<?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 9.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.
<?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 9.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.
<?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 9.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() — это обратное утверждение и принимает те же аргументы.
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;
final class InfiniteTest extends TestCase
{
public function testFailure(): void
{
$this->assertInfinite(1);
}
}
$ phpunit InfiniteTest PHPUnit 9.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() — это обратное утверждение и принимает те же аргументы.
<?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 9.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() — это обратное утверждение и принимает те же аргументы.
<?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() — это обратное утверждение и принимает те же аргументы.
<?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() — это обратное утверждение и принимает те же аргументы.
<?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() — это обратное утверждение и принимает те же аргументы.
<?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() — это обратное утверждение и принимает те же аргументы.
<?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() — это обратное утверждение и принимает те же аргументы.
<?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() — это обратное утверждение и принимает те же аргументы.
<?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() — это обратное утверждение и принимает те же аргументы.
<?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() — это обратное утверждение и принимает те же аргументы.
<?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() — это обратное утверждение и принимает те же аргументы.
<?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.
assertIsString()
assertIsString($actual[, $message = ''])
Сообщает об ошибке, определённой $message, если $actual не является типа string.
assertIsNotString() — это обратное утверждение и принимает те же аргументы.
<?php
use PHPUnit\Framework\TestCase;
class StringTest extends TestCase
{
public function testFailure()
{
$this->assertIsString(null);
}
}
$ phpunit StringTest PHPUnit 9.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, не доступны для чтения.
assertIsNotReadable() — это обратное утверждение и принимает те же аргументы.
<?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 9.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, не имеют разрешений на запись.
assertIsNotWritable() является обратной операцией для данного утверждения и принимает те же аргументы.
<?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 9.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.
<?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 9.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.
<?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 9.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.
<?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 9.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.
<?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 9.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.
<?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 9.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.
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;
final class NanTest extends TestCase
{
public function testFailure(): void
{
$this->assertNan(1);
}
}
$ phpunit NanTest PHPUnit 9.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() является обратной операцией для данного утверждения и принимает те же аргументы.
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;
final class NullTest extends TestCase
{
public function testFailure(): void
{
$this->assertNull('foo');
}
}
$ phpunit NotNullTest PHPUnit 9.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() является обратной операцией для данного утверждения и принимает те же аргументы.
<?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 9.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.
assertMatchesRegularExpression()
assertMatchesRegularExpression(string $pattern, string $string[, string $message = ''])
Сообщает об ошибке, определенной $message, если $string не соответствует регулярному выражению $pattern.
assertDoesNotMatchRegularExpression() является обратной операцией для данного утверждения и принимает те же аргументы.
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;
final class RegExpTest extends TestCase
{
public function testFailure(): void
{
$this->assertMatchesRegularExpression('/foo/', 'bar');
}
}
$ phpunit RegExpTest PHPUnit 9.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() является обратной операцией для данного утверждения и принимает те же аргументы.
<?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 9.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: Один символ любого типа. -
%%: Литеральный символ процента:%.
assertStringMatchesFormatFile()
assertStringMatchesFormatFile(string $formatFile, string $string[, string $message = ''])
Сообщает об ошибке, определенной $message, если $string не соответствует содержимому файла $formatFile.
assertStringNotMatchesFormatFile() является обратной операцией для данного утверждения и принимает те же аргументы.
<?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 9.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() является обратной операцией для данного утверждения и принимает те же аргументы.
<?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 9.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 не ссылаются на один и тот же объект.
<?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 9.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() — это обратное утверждение, принимающее те же аргументы.
<?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 9.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() — это обратное утверждение, принимающее те же аргументы.
<?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 9.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() — это обратное утверждение, принимающее те же аргументы.
<?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 9.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.
<?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.
| Ограничение | Значение |
|---|---|
PHPUnit\Framework\Constraint\IsAnything anything() | Ограничение, которое принимает любое входное значение. |
PHPUnit\Framework\Constraint\ArrayHasKey arrayHasKey(mixed $key) | Ограничение, которое утверждает, что массив имеет заданный ключ. |
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\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() — это обратное утверждение, принимающее те же аргументы.
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;
final class TrueTest extends TestCase
{
public function testFailure(): void
{
$this->assertTrue(false);
}
}
$ phpunit TrueTest PHPUnit 9.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.
assertXmlFileEqualsXmlFile()
assertXmlFileEqualsXmlFile(string $expectedFile, string $actualFile[, string $message = ''])
Сообщает об ошибке, определённой $message, если XML-документ в $actualFile не равен XML-документу в $expectedFile.
assertXmlFileNotEqualsXmlFile() — это обратное утверждение, принимающее те же аргументы.
<?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 9.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() — это обратное утверждение, принимающее те же аргументы.
<?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 9.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() — это обратное утверждение, принимающее те же аргументы.
<?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 9.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/9.5/assertions.html