assertEquals()

2018-02-24 15:42 更新

assertEquals()

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

當(dāng)兩個(gè)變量 $expected$actual 不相等時(shí)報(bào)告錯(cuò)誤,錯(cuò)誤訊息由 $message 指定。

assertNotEquals() 是與之相反的斷言,接受相同的參數(shù)。

assertAttributeEquals()assertAttributeNotEquals() 是便捷包裝(convenience wrapper),以某個(gè)類或?qū)ο蟮哪硞€(gè) public、protectedprivate 屬性作為實(shí)際值來進(jìn)行比較。

Example?A.13.?assertEquals() 的用法

<?php
class EqualsTest extends PHPUnit_Framework_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 5.0.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])

當(dāng)兩個(gè)浮點(diǎn)數(shù) $expected$actual 之間的差值(的絕對(duì)值)大于 $delta 時(shí)報(bào)告錯(cuò)誤,錯(cuò)誤訊息由 $message 指定。

關(guān)于為什么 $delta 參數(shù)是必須的,請(qǐng)閱讀《關(guān)于浮點(diǎn)運(yùn)算,每一位計(jì)算機(jī)科學(xué)從業(yè)人員都應(yīng)該知道的事實(shí)》。

Example?A.14.?將assertEquals()用于浮點(diǎn)數(shù)時(shí)的用法

<?php
class EqualsTest extends PHPUnit_Framework_TestCase
{
    public function testSuccess()
    {
        $this->assertEquals(1.0, 1.1, '', 0.2);
    }

    public function testFailure()
    {
        $this->assertEquals(1.0, 1.1);
    }
}
?>
phpunit EqualsTest

PHPUnit 5.0.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 = ''])

當(dāng) $expected$actual 這兩個(gè) DOMDocument 對(duì)象所表示的 XML 文檔對(duì)應(yīng)的無注釋規(guī)范形式不相同時(shí)報(bào)告錯(cuò)誤,錯(cuò)誤訊息由 $message 指定。

Example?A.15.?assertEquals()應(yīng)用于 DOMDocument 對(duì)象時(shí)的用法

<?php
class EqualsTest extends PHPUnit_Framework_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 5.0.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 = ''])

當(dāng) $expected$actual 這兩個(gè)對(duì)象的屬性值不相等時(shí)報(bào)告錯(cuò)誤,錯(cuò)誤訊息由 $message 指定。

Example?A.16.?assertEquals()應(yīng)用于對(duì)象時(shí)的用法

<?php
class EqualsTest extends PHPUnit_Framework_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 5.0.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 = ''])

當(dāng) $expected$actual 這兩個(gè)數(shù)組不相等時(shí)報(bào)告錯(cuò)誤,錯(cuò)誤訊息由 $message 指定。

Example?A.17.?assertEquals() 應(yīng)用于數(shù)組時(shí)的用法

<?php
class EqualsTest extends PHPUnit_Framework_TestCase
{
    public function testFailure()
    {
        $this->assertEquals(array('a', 'b', 'c'), array('a', 'c', 'd'));
    }
}
?>
phpunit EqualsTest

PHPUnit 5.0.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.
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)