PHPUnitManual:4.8: Difference between revisions
Jump to navigation
Jump to search
Onionmixer (talk | contribs) (PHPUnit 4.8 엣지케이스 내용추가) |
Onionmixer (talk | contribs) (내용 부족분 추가) |
||
Line 32: | Line 32: | ||
+++ Actual | +++ 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. | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Latest revision as of 02:51, 2 July 2013
- 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'을 의미하는듯 합니다.