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.0656 sec