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