<?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%3A8.3</id>
	<title>PHPUnitManual:8.3 - 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%3A8.3"/>
	<link rel="alternate" type="text/html" href="https://trans.onionmixer.net/wiki/index.php?title=PHPUnitManual:8.3&amp;action=history"/>
	<updated>2026-05-01T23:00:03Z</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:8.3&amp;diff=3399&amp;oldid=prev</id>
		<title>Onionmixer: PHPUnit 8.3 데이터베이스 테스트의 4단계 페이지 추가</title>
		<link rel="alternate" type="text/html" href="https://trans.onionmixer.net/wiki/index.php?title=PHPUnitManual:8.3&amp;diff=3399&amp;oldid=prev"/>
		<updated>2013-07-02T08:18:44Z</updated>

		<summary type="html">&lt;p&gt;PHPUnit 8.3 데이터베이스 테스트의 4단계 페이지 추가&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;;8.3 데이터베이스 테스트의 4단계&lt;br /&gt;
&lt;br /&gt;
==데이터베이스 테스트의 4단계==&lt;br /&gt;
&lt;br /&gt;
Gerard Meszaros 는 저서 xUnit Test Patterns 에서 단위 테스트를 다음 4단계로 분류합니다.&lt;br /&gt;
&lt;br /&gt;
* fixture 셋업 (Setup)&lt;br /&gt;
* 테스트 대상 시스템의 실행 (Exercise)&lt;br /&gt;
* 결과 검증 (Verify)&lt;br /&gt;
* 후처리 (Teardown)&lt;br /&gt;
&lt;br /&gt;
:&amp;#039;&amp;#039;&amp;#039;Fixture 란?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:fixture 란, 어플리케이션이나 데이터베이스의 초기 상태를 말합니다. 테스트를 실행하기 전에 준비해야 합니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
데이터베이스를 테스트하기 위해서는, 적어도 setup 과 teardown 에서는 테이블에 접속하여 fixture 의 clean-up 이나 insert 를 해야만 합니다. 그렇지만, Database Extension 에서는 위의 4단계를 다음과 같이 바꿀 충분한 이유가 있습니다. 이 work flow 는 각각의 테스트에 관해 실행됩니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===1. Clean-Up Database===&lt;br /&gt;
&lt;br /&gt;
데이터베이스를 사용하는 첫번째 테스트는 언제나 존재할 것입니다. 실제로 해당 테이블에 데이터가 존재할지 아닐지는 알 수 없습니다. PHPUnit 는 지정한 모든 테이블에 TRUNCATE 를 실행하여 테이블을 비웁니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===2. Set up fixture===&lt;br /&gt;
&lt;br /&gt;
PHPUnit 는 fixture 의 각 행을 순차적으로 처리하여 대응되는 테이블에 insert 합니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===3–5. Run Test, Verify outcome and Teardown===&lt;br /&gt;
&lt;br /&gt;
데이터베이스를 리셋하여 초기 상태를 insert 한 뒤, PHPUnit 는 테스트를 실행합니다. 테스트 코드의 이 부분은 Database Extension 를 알고 있을 필요가 없고, 코드에 관한 모든 필요한 테스트를 할 수 있습니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
테스트 안에서 assertDataSetsEqual() 라는 특수한 검증을 사용할 수도 있습니다. 이 기능은 전적으로 옵션 기능입니다. 자세한 기능은 &amp;quot;Database Assertions&amp;quot; 에서 설명할 것입니다.&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>