PHPUnitManual:4.8

From 흡혈양파의 번역工房
Jump to: navigation, 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'을 의미하는듯 합니다.