PHPUnitManual:4.8

From 흡혈양파의 번역工房
Jump to navigation Jump to search
4.8 엣지 케이스(Edge case)

비교가 실패하면 PHPUnit은 입력 값의 텍스트 표현들을 생성하여 비교한다. 그러한 구현으로 인해, 비교로 인한 차이는 실제 존재하는 것보다 더 많은 문제를 표시하기도 한다.

이것은 배열이나 객체 상에서 assertEquals 또는 다른 '약한(weak)' 비교 함수를 사용 시에만 발생한다.


예4.62. 약한(weak) 비교를 사용 시 세대(generation)별 엣지 케이스(edge case)

<?php
class ArrayWeakComparisonTest extends PHPUnit_Framework_TestCase
{
  public function testEquality() {
    $this->assertEquals(
			array(1 ,2,3 ,4,5,6),
			array('1',2,33,4,5,6)
			);
  }
}
?>
PHPUnit 3.6.0 by Sebastian Bergmann.
F
Time: 0 seconds, Memory: 5.25Mb
There was 1 failure:
1) ArrayWeakComparisonTest::testEquality
Failed asserting that two arrays are equal.
--- Expected
+++ Actual
@@ @@
Array (
-
0 => 1
+
0 => '1'
1 => 2
-
2 => 3
+
2 => 33
3 => 4
4 => 5
5 => 6
)
/home/sb/ArrayWeakComparisonTest.php:7
FAILURES!
Tests: 1, Assertions: 1, Failures: 1.


이 예제의 첫 번째 색인에 나타나는 차이, 즉 1과 '1' 사이에 차이가 보고되긴 하지만 assertEquals가 값을 일치하는 값(match)으로 간주한다.[1]


Notes

  1. 숫자 1과 문자 '1'을 의미하는듯 합니다.