<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://trans.onionmixer.net/wiki/index.php?action=history&amp;feed=atom&amp;title=PHPUnitManual%3A4.4</id>
	<title>PHPUnitManual:4.4 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://trans.onionmixer.net/wiki/index.php?action=history&amp;feed=atom&amp;title=PHPUnitManual%3A4.4"/>
	<link rel="alternate" type="text/html" href="https://trans.onionmixer.net/wiki/index.php?title=PHPUnitManual:4.4&amp;action=history"/>
	<updated>2026-05-02T07:19:17Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.3</generator>
	<entry>
		<id>https://trans.onionmixer.net/wiki/index.php?title=PHPUnitManual:4.4&amp;diff=3375&amp;oldid=prev</id>
		<title>Onionmixer: PHPUnit 4.4 PHP에러의 테스트 페이지 추가</title>
		<link rel="alternate" type="text/html" href="https://trans.onionmixer.net/wiki/index.php?title=PHPUnitManual:4.4&amp;diff=3375&amp;oldid=prev"/>
		<updated>2013-06-06T10:08:22Z</updated>

		<summary type="html">&lt;p&gt;PHPUnit 4.4 PHP에러의 테스트 페이지 추가&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;;4.4 PHP 에러의 테스트&lt;br /&gt;
&lt;br /&gt;
==PHP 에러의 테스트==&lt;br /&gt;
&lt;br /&gt;
초기값에서는, PHPUnit 은 테스트 실행 중에 발생한 PHP 의 에러나 경고, 주의 (notice) 를 예외로 변환합니다. 이런 예외를 사용하여 예제 4.11 &amp;quot;@expectedException 을 사용한, PHP 에러 발생 테스트&amp;quot; 와 같이 PHP 의 에러 발생을 테스트할 수 있습니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
예제 4.11 @expectedException 을 사용한, PHP 에러 발생 테스트&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
class ExpectedErrorTest extends PHPUnit_Framework_TestCase&lt;br /&gt;
{&lt;br /&gt;
	/**&lt;br /&gt;
	 * @expectedException PHPUnit_Framework_Error&lt;br /&gt;
	 */&lt;br /&gt;
	public function testFailingInclude()&lt;br /&gt;
	{&lt;br /&gt;
		include &amp;#039;not_existing_file.php&amp;#039;;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
PHPUnit 3.7.0 by Sebastian Bergmann.&lt;br /&gt;
.&lt;br /&gt;
Time: 0 seconds&lt;br /&gt;
OK (1 test, 1 assertion)phpunit ExpectedErrorTest&lt;br /&gt;
PHPUnit 3.7.0 by Sebastian Bergmann.&lt;br /&gt;
.&lt;br /&gt;
Time: 0 seconds&lt;br /&gt;
OK (1 test, 1 assertion)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PHPUnit_Framework_Error_Notice 및 PHPUnit_Framework_Error_Warning 은, 각각 PHP 의 주의와 경고에 대응합니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;#039;&amp;#039;&amp;#039;주의사항&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:예외를 테스트할 때는 가능한 한 한정적으로 테스트하여야 합니다. 매우 일반화된 클래스를 테스트한다면 예측하지 못 한 부작용을 일으킬 수 있습니다. 그렇기에 @expectedException 이나 setExpectedException() 을 사용하여 Exception 클래스를 테스트할 수 없도록 하였습니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
에러를 일으키는 PHP 의 함수 (예를 들어 fopen 등) 에 의존하는 테스트를 실행할 때는, 테스트 안에서 에러를 억제할 수 있는 것을 이용할 수도 있습니다. 이렇게 함으로서 notice 때문에 PHPUnit_Framework_Error_Notice 를 발생시키지 않고 반환값만을 체크할 수 있습니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
예제 4.12 PHP 의 에러가 발생하는 코드의 반환값 테스트&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
class ErrorSuppressionTest extends PHPUnit_Framework_TestCase&lt;br /&gt;
{&lt;br /&gt;
	public function testFileWriting() {&lt;br /&gt;
		$writer = new FileWriter;&lt;br /&gt;
		$this-&amp;gt;assertFalse(@$writer-&amp;gt;write(&amp;#039;/is-not-writeable/file&amp;#039;, &amp;#039;stuff&amp;#039;));&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
class FileWriter&lt;br /&gt;
{&lt;br /&gt;
	public function write($file, $content) {&lt;br /&gt;
		$file = fopen($file, &amp;#039;w&amp;#039;);&lt;br /&gt;
		if($file == false) {&lt;br /&gt;
			return false;&lt;br /&gt;
		}&lt;br /&gt;
		// ...&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
PHPUnit 3.7.0 by Sebastian Bergmann.&lt;br /&gt;
.&lt;br /&gt;
Time: 1 seconds, Memory: 5.25Mb&lt;br /&gt;
OK (1 test, 1 assertion)phpunit ErrorSuppressionTest&lt;br /&gt;
PHPUnit 3.7.0 by Sebastian Bergmann.&lt;br /&gt;
.&lt;br /&gt;
Time: 1 seconds, Memory: 5.25Mb&lt;br /&gt;
OK (1 test, 1 assertion)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;에러를 억제하지 않는다면&amp;#039;&amp;#039;&amp;#039;, 이 테스트는 실패하고 fopen(/is-not-writeable/file): failed to open stream: No such file or directory 가 발생합니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:PHPUnitManual]]&lt;/div&gt;</summary>
		<author><name>Onionmixer</name></author>
	</entry>
</feed>