E D R , A S I H C RSS

Test Driven Development

1. TDD

1.1. TDD ํ•˜ฉด„œ –ธ œ ƒฐ„ งŽด ํ•ด•ํ•˜Š”€?

ํ…ŒŠคํŠธ งŒ“ค •Œธ€? ํ…ŒŠคํŠธ— งžฒŒ ™ž‘„ ˆ˜ํ–‰ํ•˜Š” ฝ”“œ ž‘„ํ•  •Œธ€? --Leonardong
‚ฌžŒงˆ‹ค ‹คฒƒ ฐ™ธด ํ•˜€งŒ, ‚˜˜ ฒฝšฐŠ” ํ…ŒŠคํŠธ ž‘„ํ•˜ธฐ  „ TODO List ž‘„ํ• •Œ €žฅ ณ „ ํ•˜ณ  ‹œ„ด ˜คž˜ฆฐ ฒƒ ฐ™‹ค. ญ˜ งŒ“คฒƒธ€— Œ€ํ•œ ดํ•ด€  œŒ€กœ ˜€ •Š€ ƒํƒœ—„œŠ” „Œ€ฒด 'ญ˜ ํ•ด• ํ• €, –ด–ค ฒฐ ธฐŒ€ํ•ด• ํ• €' ชจฅดธฐ •Œฌธ. :) ํ•œํŽธ, งŒ TODO ฆฌŠคํŠธ ž‘„‹œ ‹œ„ด „ˆฌด €ฒดœ‹ค ‹ถœฉด ฆฌ '–ด–ค ฒฐ ธฐŒ€ํ•ด• ํ•˜‚˜(Test ””žธ)' ดž€ งˆฌธ„ ํ•˜ณ  ํ…ŒŠคํŠธ ž‘„ํ•ดณดŠ” ฐฉฒ•„ ถ”ฒœ.  € งˆฌธด •ž—„œ˜ 'ญ˜ ํ• Œ?'Š” งˆฌธ˜ ชจํ˜ธํ•จ„ ณด™„ํ•ดธฐ •Œฌธ. ฌด—‡„ ํ•ด• ํ• € ฐด •ˆ˜ฌ•ŒŠ” €žฅ „‹จํ•œ Input-Output „ „œˆ ํ•ด„œกœ„œ กฐธˆ”ฉ ตฌฒดํ™”‹œœ‚˜ฐˆ ˆ˜ žˆŒ. '˜ˆ œ— ˜ํ•œ ตฌฒดํ™”'ž€ ฐฉฒ•€ ฐธ œ šฉํ•จ. --1002
{{|
... „žต...
ํ…ŒŠคํŠธ ž‘„ํ• •Œ—” 'ด™„„˜–ดžˆŠ” ž˜ œ API' ƒƒํ•˜ฉฐ ž‘„ํ•œ‹ค. ž˜ งŒ“ค–ด„ APIŠ” ฐ™€ „ ํ•˜”„ ง ‘ ํ˜ธถœํ•ดค˜• ํ•˜Š” ํ•จˆ˜˜ ˆ˜€  ณ  ดํ•ดํ•˜ธฐ ํŽธํ•˜ฉฐ 'ฌด—‡'„ ํ•ดŠ”€ ทธ ฉ”†Œ“œ€ งํ•ด€‹ค.  ฒŒ ฝ”“œ จ„ งŽ€ „ ํ•ดŠ”ฒƒด‹ค. ทธฆฌณ , ํ…ŒŠคํŠธกœ„œ ปดํ“จํ„˜ ปดํŒŒŸฌ—ฒŒ ฝ”“œž‘„„ œ„ํ•ด ํ•ด• ํ•  “ค„ ฌปณ , ธํ„ฐํŽ˜ดŠค งŒ“คณ . ทธฆฌณ  ตฌํ˜„ํ•˜ณ , ‹ค‹œ ตฌํ˜„œ ฝ”“œ Refactoring ํ•œ‹ค.
...ํ›„žต... -TestDrivenDevelopment—„œ
|}}

1.2. „‹จํ•œ C++ —„œ˜ TDD ฐธณ  ํ•จˆ˜

~cpp

int gNumTests = 0;
int gNumFailures = 0;
void Assert(bool condition)
{
	++gNumTests;
	if(!condition)
	{
		++gNumFailures;
	}
}
#define Assert(cond)	AssertImpl(cond, #cond, __LINE__, __FILE__)

void AssertImpl( bool condition, const char* condStr, int lineNum, const char* fileName)
{
	++gNumTests;
	if(!condition)
	{
		++gNumFailures;
		printf("file %s', line %d, assert '%s' failed\n", fileName, (int)lineNum, condStr);
	}
}
void printTestResult() {
		printf("%d tests run, %d tests failed\n", (int)gNumTests,(int)gNumFailures);
}
int main(int argc, char* argv[])
{
	Assert(1==2);
	printTestResult();
	return 0;
}
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:28:12
Processing time 0.0195 sec