์†Œ์Šค ์ฝ”๋“œ ์˜คํƒ€ ํ™•์ธ ํ•ด๋ณด์„ธ์š”

54 views
Skip to first unread message

mOer

unread,
Aug 10, 2010, 10:31:03โ€ฏAM8/10/10
to TDDBook-QNA
์•ˆ๋…•ํ•˜์„ธ์š”

๋จผ์ € ์ข‹์€ ์ฑ… ์จ์ฃผ์…”์„œ ์ •๋ง ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. TDD์— ๊ด€ํ•ด์„œ ๋ชฐ๋ž๋˜ ๋ถ€๋ถ„์„ ๋งŽ์ด ๋ฐฐ์šฐ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ œ๊ฐ€ ์ฑ•ํ„ฐ 4๊นŒ์ง€ ์ฑ…์„ ๋ณด๋ฉด
์„œ ์†Œ์Šค ์ฝ”๋“œ ๋ถ€๋ถ„ ์˜คํƒ€๋ฅผ ์ฐพ์•„์„œ ์ •๋ฆฌํ•ด ๋ดค์Šต๋‹ˆ๋‹ค. (http://www.hanb.co.kr/book/errata/
errata_view.html?isbn=978-89-7914-726-1 ์ด๊ณณ ์ฐธ์กฐํ•ด์„œ ๊ฒน์น˜๋Š”๊ฑด ์ œ์™ธ ํ–ˆ์Šต๋‹ˆ๋‹ค.)


p199 ์œ„์ชฝ ์†Œ์Šค์ฝ”๋“œ, ๋งจ ์•„๋ž˜์ค„
userCoupon.getDiscountRate() -> lastCoupon.getName()


p220 IListener ์ธํ„ฐํŽ˜์ด์Šค
๋’ท์ชฝ ์ฝ”๋“œ๋ฅผ ์ „๋ถ€ ๋ฐ˜์˜ํ•œ๋‹ค๊ณ  ํ•  ๋•Œ ๋‹ค์Œ ๋ฉ”์†Œ๋“œ๊ฐ€ ์ถ”๊ฐ€๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
void documentChanged(String title);
int getDocumentSize(String title);


p223 ๊ฐ€์žฅ ์œ„์ชฝ ์†Œ์Šค์ฝ”๋“œ
์ค‘๊ฐ„์— ๋‚˜์™€์žˆ๋Š” ์—๋Ÿฌ๊ฐ€ ๋งž๋‹ค๊ณ  ๊ฐ€์ •ํ•  ๋•Œ

์›๋ž˜ ์†Œ์Šค์ฝ”๋“œ:
documentBox.addDocument("Document", new byte[0]);
documentBox.addDocument("Document", new byte[0]);
documentBox.addDocument("Document", new byte[0]);
documentBox.addDocument("Document", new byte[0]);

์ˆ˜์ •๋œ ์†Œ์Šค์ฝ”๋“œ:
documentBox.addDocument("Document", new byte[0]);
documentBox.documentChanged("Document");
documentBox.documentChanged("Document");
documentBox.documentChanged("Document");


p223 ๊ฐ€์žฅ ์•„๋ž˜ ์†Œ์Šค์ฝ”๋“œ
์•„๋ž˜ ๋ฉ”์†Œ๋“œ ๊ฐ™์€ ๊ฒฝ์šฐ, mock์—์„œ ํ˜ธ์ถœํ•  ๋•Œ์˜ ํ–‰๋™์„ ์ง€์ •ํ•ด ์ฃผ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
mockListener.documentInfo("Document");

๋งŒ์•ฝ ์ด ์ฝ”๋“œ๊ฐ€ ์ด๋Ÿฐ ์ฝ”๋“œ์˜€๋‹ค๊ณ  ์ƒ๊ฐํ•ด ๋ด๋„ mock ๊ฐ์ฒด๊ฐ€ ์•„๋‹Œ๋ฐ ํ˜ธ์ถœํ•ด ์ฃผ๋Š”๊ฒŒ ์ด์ƒํ•ด ๋ณด์ž…๋‹ˆ๋‹ค.
documentBox.documentInfo("Document");

์ €๋Š” ์ด ์ฝ”๋“œ๋ฅผ ์‚ญ์ œํ•˜๊ณ  DocumentBox.documentInfo() ๋ฉ”์†Œ๋“œ๋ฅผ ์ด๋ ‡๊ฒŒ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.
public String documentInfo(String title) {
return title + ": " + listener.getDocumentSize(title);
}


p248 ์†Œ์Šค์ฝ”๋“œ
testSound_NOISY() ๋ฉ”์†Œ๋“œ๋Š” noise.sound() ๋ฉ”์†Œ๋“œ๋ฅผ ๋ช‡ ๋ฒˆ ํ˜ธ์ถœํ–ˆ๋Š”์ง€ ํ…Œ์ŠคํŠธ ํ•˜๋Š”๋ฐ
NoiseChecker.checkDecibel() ๋ฉ”์†Œ๋“œ์˜ if-else ๋ฌธ์œผ๋กœ ์ธํ•ด ํ•œ ๋ฒˆ ํ˜ธ์ถœ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด 5๋ฒˆ ํ˜ธ์ถœ๋ฉ
๋‹ˆ๋‹ค. ์ €๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

verify(noise).sound(); -> verify(noise, atLeast(1)).sound();


ํ•œ ๋ฒˆ ํ™•์ธํ•ด ๋ณด์„ธ์š”~

์˜ํšŒ

unread,
Aug 10, 2010, 8:34:46โ€ฏPM8/10/10
to TDDBook-QNA
๋‚ด์šฉ์„ ํ™•์ธํ•ด๋ณด์ง€ ๋ชปํ–ˆ์ง€๋งŒ... Good job ์ด๋„ค์š”. :)

ํŽญ๊ท„๋„ˆ๊ตฌ๋ฆฌ

unread,
Aug 11, 2010, 4:27:01โ€ฏPM8/11/10
to tddbo...@googlegroups.com
์•ˆ๋…•ํ•˜์„ธ์š”?
์ €์•ผ๋ง๋กœ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ฝ์–ด์ฃผ์‹œ๊ณ , ์˜คํƒ€๊นŒ์ง€ ์ ์–ด๋ณด๋‚ด์ฃผ์‹œ๋‹ˆ ๋ถ€๋„๋Ÿฌ์šด ๋งˆ์Œ๊ณผ ๊ณ ๋งˆ์šด ๋งˆ์Œ์ด ํ•จ๊ป˜ ๋“ญ๋‹ˆ๋‹ค. ํ˜„์žฌ ์ž์„ธํžˆ ์‚ดํŽด๋ณด๊ธฐ ์กฐ๊ธˆ ์–ด๋ ค์šด ์ƒํ™ฉ์ธ์ง€๋ผ, ์ตœ๋Œ€ํ•œ ๋น ๋ฅธ ์‹œ๊ฐ„๋‚ด์— ๋‹ต๋ณ€๋“œ๋ฆฌ๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.
์˜คํƒ€๋กœ ์ธํ•ด ๋ถˆํŽธ์„ ๋“œ๋ ค ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿผ ์ข‹์€ ํ•˜๋ฃจ ๋˜์„ธ์š”.

ps. ๋ธ”๋กœ๊ทธ๋‚˜ ํŠธ์œ„ํ„ฐ ๋ฏธํˆฌํ•˜์‹œ๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š”. :)
์ „ ๋ฏธํˆฌ ์ฃผ๋กœ ํ•ฉ๋‹ˆ๋‹ค.
me2day.net/doortts
twitter.com/doortts


2010๋…„ 8์›” 10์ผ ์˜ค์ „ 10:31, mOer <ethd...@gmail.com>๋‹˜์˜ ๋ง:

Yunseok Choi

unread,
Aug 12, 2010, 1:20:17โ€ฏAM8/12/10
to tddbo...@googlegroups.com
์•ˆ๋…•ํ•˜์„ธ์š”

์ œ ํŠธ์œ„ํ„ฐ๋Š” twitter/ethdemor ์ž…๋‹ˆ๋‹ค. (ํŠธ์œ—์„ ๋งŽ์ด ํ•˜๋Š” ํŽธ์€ ์•„๋‹ˆ์—์š”)

๋‹ค๋‹ค์Œ์ฃผ ๊ฐ•์˜ ํ•˜์‹ค ๋•Œ ์ฐพ์•„ ๋ต๊ป˜์š” :-)

2010/8/12 ํŽญ๊ท„๋„ˆ๊ตฌ๋ฆฌ <doo...@gmail.com>



--
by mOer

mOer

unread,
Aug 19, 2010, 11:25:13โ€ฏAM8/19/10
to TDDBook-QNA
์ฑ•ํ„ฐ 5, 6 ๋ณด๋ฉด์„œ ์ฐพ์€ ์†Œ์Šค ์ฝ”๋“œ ์˜คํƒ€์ž…๋‹ˆ๋‹ค.

p262 ์†Œ์Šค์ฝ”๋“œ
๋ณธ๋ฌธ ๊ฒ€์€์ƒ‰ ๋™๊ทธ๋ผ๋ฏธ 2๋ฒˆ ๋ถ€๋ถ„์— driver, URL๋งŒ ๋“ค์–ด๊ฐ”๋Š”๋ฐ (์•„๋งˆ ์ƒ๋žตํ•˜์‹ ๊ฑฐ ๊ฐ™์ง€๋งŒ) username,
password๊ฐ€ ์ถ”๊ฐ€๋˜์–ด์•ผ ํ•˜์ง€ ์•Š์„๊นŒ ์‹ถ์Šต๋‹ˆ๋‹ค.

p268 ์†Œ์Šค์ฝ”๋“œ
expected_seller.xml ์ฝ”๋“œ์—์„œ ๋ฐ‘์— <item />์€ ๋นˆ ํ…Œ์ด๋ธ”์„ ๋งŒ๋“œ๋Š” ๊ฑธ๋กœ ์•Œ๊ณ  ์žˆ๋Š”๋ฐ item์ด๋ž€ ํ…Œ์ด๋ธ”์„
์ฑ…์—์„œ ๋งŒ๋“ ์ ์ด ์—†์œผ๋ฏ€๋กœ ์‚ญ์ œํ•˜๋Š”๊ฒŒ ์ข‹์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

p290 Book ํด๋ž˜์Šค ์†Œ์Šค์ฝ”๋“œ, p296 Player ํด๋ž˜์Šค ์†Œ์Šค์ฝ”๋“œ
super(); ๊ฐ€ ์™œ ์žˆ๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

p293 LENIENT_ORDER ์†Œ์Šค์ฝ”๋“œ, p295 ์•„๋ž˜์ชฝ ์†Œ์Šค์ฝ”๋“œ ์ปฌ๋ ‰์…˜์˜ ์ˆœ์„œ๊ฐ€ ๋‹ค๋ฅธ ๊ฒฝ์šฐ ๋ถ€๋ถ„
expected์™€ actual ์ˆœ์„œ๊ฐ€ ๋ฐ”๋€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. (ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ์— ์˜ํ–ฅ์€ ์—†์Šต๋‹ˆ๋‹ค.)
p293 ์†Œ์Šค์ฝ”๋“œ๋Š” ์ œ ์ƒ๊ฐ์—” assertReflectionEquals(myList, Arrays.asList(1, 2,
3), LENIENT_ORDER); ๊ฐ€ ๋งž๋Š” ๊ฒƒ ๊ฐ™๊ณ ,
p295 ์†Œ์Šค์ฝ”๋“œ๋Š” assertLenientEquals(bag, Arrays.asList(300, 200, 100)); ์ด ๋งž
์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

p303 @DataSet
ํ…Œ์ŠคํŠธ๊ฐ€ ๊ณ„์† ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. ์›์ธ์„ ์ฐพ์•„๋ณด๋‹ˆ DbUnit 2.4.7๊ณผ Unitils-DbUnit-3.1 (ํ˜„์žฌ ์ตœ์‹ ๋ฒ„์ „๋“ค) ์‚ฌ์šฉ
์‹œ ๋ฐœ์ƒํ•˜๋Š” ์—๋Ÿฌ์ธ ๊ฒƒ ๊ฐ™๋”๋ผ๊ตฌ์š”. PostgreSQL์„ ์‚ฌ์šฉํ•  ๋• ํ…Œ์ด๋ธ”์„ ์ฐพ์„ ์ˆ˜ ์—†๋‹ค๊ณ  ํ•˜๊ณ , MySQL ์‚ฌ์šฉํ•  ๋• ๊ฒฐ๊ณผ
๊ฐ€ ์—†๋‹ค๊ณ  ์—๋Ÿฌ๋‚ฌ์Šต๋‹ˆ๋‹ค.
ํ•ด๊ฒฐ์ฑ…์€ ์ด ๊ณณ(http://blog.javapia.co.kr/67)์—์„œ ์ฐพ์•˜๋Š”๋ฐ, DbUnit์„ 2.2.2 ๋ฒ„์ „์œผ๋กœ ๋‚ฎ์ถ”๋ฉด
์ž˜ ๋Œ์•„๊ฐ‘๋‹ˆ๋‹ค๋งŒ 2.2.2 ๋ฒ„์ „์— FlatXmlDataSetBuilder ํด๋ž˜์Šค๊ฐ€ ์—†์–ด์„œ new
FlatXmlDataSet(File ...) ; ์‹์œผ๋กœ ์ฝ”๋“œ๋ฅผ ๋ฐ”๊ฟ”์ค˜์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋์œผ๋กœ ์‚ฌ์†Œํ•œ ๊ฑฐ์ง€๋งŒ p303 ์†Œ์Šค์ฝ”๋“œ ํด๋ž˜์Šค ์ด๋ฆ„์ด RepositoryTest -> DatabaseRepositoryTest
์ˆ˜์ •๋๋Š”๋ฐ ์ด๊ฑด ์˜คํƒ€์ธ์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค;

ํŽญ๊ท„๋„ˆ๊ตฌ๋ฆฌ

unread,
Aug 20, 2010, 3:55:13โ€ฏPM8/20/10
to tddbo...@googlegroups.com
์•ˆ๋…•ํ•˜์„ธ์š”? mOer๋‹˜!

์ฃผ์‹  ๋‚ด์šฉ์€ ์ €๋ฒˆ๊ฒƒ๊นŒ์ง€ ํฌํ•จํ•ด์„œ ํ™•์ธ์ค‘์— ์žˆ์Šต๋‹ˆ๋‹ค.
(ํ˜น ์™ค์ผ€ ๋‚ด ์˜๊ฒฌ๋งŒ ๋ฐ˜์˜์ด ๋Šฆ์ง€? ๋ผ๊ณ  ์ƒ๊ฐํ•˜์‹ค๊นŒ๋ด.. ^^;)
๊ทธ๋ฆฌ๊ณ  ์ผ๋ถ€๋Š” ์˜คํƒ€ ์ •์ •๋ž€์— ํ‘œ๊ธฐํ•ด ๋†“์•˜์Šต๋‹ˆ๋‹ค.

๋•๋ถ„์—
์ œ๊ฐ€ ๋ฏธ์ฒ˜ ์ƒ๊ฐ์ง€ ๋ชปํ–ˆ๋˜ ๋ถ€๋ถ„๋“ค๋„ ๋ฐœ๊ฒฌํ•˜๊ฒŒ ๋˜์—ˆ๊ณ ์š”.
๊ผผ๊ผผํžˆ ๋ด ์ฃผ์…”์„œ ๋ญ๋ผ ๊ฐ์‚ฌ์ธ์‚ฌ๋ฅผ ๋“œ๋ ค์•ผ ํ• ๋Ÿฐ์ง€..

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.
์กฐ๋งŒ๊ฐ„ ๋ตˆ๋ฉด ์ œ๊ฐ€ ์Œ๋ฃŒ๋ผ๋„ ํ•œ ์ž” ๋Œ€์ ‘ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค! :)

ps. ์‹œ์ฐจ์ ์‘ ์‹คํŒจ๋กœ ์ƒํ™œ๋ฆฌ๋“ฌ ๊ฝˆ๋‹น! ์ž…๋‹ˆ๋‹ค. (์ง€๊ธˆ ์ƒˆ๋ฒฝ 4์‹œ50๋ถ„-_-)


2010๋…„ 8์›” 20์ผ ์˜ค์ „ 12:25, mOer <ethd...@gmail.com>๋‹˜์˜ ๋ง:

ํŽญ๊ท„๋„ˆ๊ตฌ๋ฆฌ

unread,
Aug 20, 2010, 4:24:03โ€ฏPM8/20/10
to tddbo...@googlegroups.com
์ผ๋ถ€๋‚ด์šฉ์— ๋Œ€ํ•œ ๊ฒ€ํ† ์˜๊ฒฌ์ž…๋‹ˆ๋‹ค.
๋ช‡๋ช‡ ๋ถ€๋ถ„์€ ์„ค๋ช…์ด ์ž์„ธํ•˜์ง€ ์•Š์•˜์–ด์„œ ํ˜ผ๋ž€์Šค๋Ÿฌ์šฐ์…จ๋˜๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๋ถˆํŽธ์„ ๋ผ์ณ๋“œ๋ฆฐ๊ฒƒ ๊ฐ™์•„ ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค.



p199 ์œ„์ชฝ ์†Œ์Šค์ฝ”๋“œ, ๋งจ ์•„๋ž˜์ค„
-------์ฃผ์‹ ์˜๊ฒฌ-------------
userCoupon.getDiscountRate() -> lastCoupon.getName()
----------------------------
=> ์•Œ๋ ค์ฃผ์‹  ๋‚ด์šฉ ๋ฐ˜์˜ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

p223 ๊ฐ€์žฅ ์œ„์ชฝ ์†Œ์Šค์ฝ”๋“œ๋Š”

์˜ˆ์ œ๊ฐ€ ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ๋ฅผ ๋“ฑ๋กํ•ด์„œ ๋ฌธ์„œํ•จ์ธ documentBox์— ๋ณ€๊ฒฝ์ด ์ผ์–ด๋‚˜๋ฉด(์ถ”๊ฐ€,์ˆ˜์ •,์‚ญ์ œ๋“ฑ)
๋ฆฌ์Šค๋„ˆ๊ฐ€ ์ด๋ฅผ ๊ฐ์ง€ํ•ด์„œ ๋ฆฌ์Šค๋„ˆ์˜ documentChanged๊ฐ€ callback์œผ๋กœ ํ˜ธ์ถœ๋˜๋Š” ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค.
๋”ฐ๋ผ์„œ ์ตœ ์ƒ๋‹จ ์†Œ์Šค์ฝ”๋“œ๋Š” ์˜๋„ ๊ทธ๋Œ€๋กœ ์ž…๋‹ˆ๋‹ค.
replay์ดํ›„, ๋ฌธ์„œํ•จ์— ์ƒˆ๋กœ์šด ๋ฌธ์„œ๊ฐ€ ๋„ค ๊ฐœ ๋” ์ถ”๊ฐ€๋œ ์…ˆ์ž…๋‹ˆ๋‹ค.

p220 IListener ์ธํ„ฐํŽ˜์ด์Šค
void documentChanged(String title);
๋Š” ์ด๋ฏธ ์ธํ„ฐํŽ˜์ด์Šค์— ๋“ค์–ด์žˆ์Šต๋‹ˆ๋‹ค.

int getDocumentSize(String title);
=> ๊ทธ๋ฆฌ๊ณ  ์ด๊ฑด 223p ์†Œ์Šค๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ถ”๊ฐ€ํ•ด์•ผ ํ•˜๋Š”๊ฒŒ ๋งž๋„ค์š”. :)

p223 ๊ฐ€์žฅ ์•„๋ž˜ ์†Œ์Šค์ฝ”๋“œ
-------์ฃผ์‹ ์˜๊ฒฌ-------------

์•„๋ž˜ ๋ฉ”์†Œ๋“œ ๊ฐ™์€ ๊ฒฝ์šฐ, mock์—์„œ ํ˜ธ์ถœํ•  ๋•Œ์˜ ํ–‰๋™์„ ์ง€์ •ํ•ด ์ฃผ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
mockListener.documentInfo("Document");
----------------------------

=> ๋‹จ์ˆœํžˆ ํ˜ธ์ถœ์—ฌ๋ถ€๋งŒ ๊ฒ€์‚ฌํ•˜๊ธฐ ์œ„ํ•ด mocking ์ž‘์—…์„ ํ•  ๊ฒฝ์šฐ์—” ํ˜ธ์ถœ์‹œ ํ–‰๋™์„ ์ง€์ •ํ•ด ์ฃผ์ง€ ์•Š์•„๋„ ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋’ค์— ๋‹จ์ˆœํžˆ verify๋งŒ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ฑ…์—๋„ ์ผ์ง€๋งŒ easymock์˜ record / replay ๋ฐฉ์‹์ด ์ด๋ž˜์„œ ์‚ฌ์šฉ์ž๋“ค์„ ์ž์นซ ํ˜ผ๋ž€์Šค๋Ÿฝ๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์˜ˆ์ƒ๋Œ€๋กœ์˜ ์ฝ”๋“œ ๋งž์Šต๋‹ˆ๋‹ค.

p248 ์†Œ์Šค์ฝ”๋“œ
-------์ฃผ์‹ ์˜๊ฒฌ-------------

testSound_NOISY() ๋ฉ”์†Œ๋“œ๋Š” noise.sound() ๋ฉ”์†Œ๋“œ๋ฅผ ๋ช‡ ๋ฒˆ ํ˜ธ์ถœํ–ˆ๋Š”์ง€ ํ…Œ์ŠคํŠธ ํ•˜๋Š”๋ฐ
NoiseChecker.checkDecibel() ๋ฉ”์†Œ๋“œ์˜ if-else ๋ฌธ์œผ๋กœ ์ธํ•ด ํ•œ ๋ฒˆ ํ˜ธ์ถœ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด 5๋ฒˆ ํ˜ธ์ถœ๋ฉ
๋‹ˆ๋‹ค. ์ €๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

verify(noise).sound(); -> verify(noise, atLeast(1)).sound();
----------------------------


262p ์†Œ์Šค์ฝ”๋“œ
-------์ฃผ์‹ ์˜๊ฒฌ-------------

๋ณธ๋ฌธ ๊ฒ€์€์ƒ‰ ๋™๊ทธ๋ผ๋ฏธ 2๋ฒˆ ๋ถ€๋ถ„์— driver, URL๋งŒ ๋“ค์–ด๊ฐ”๋Š”๋ฐ (์•„๋งˆ ์ƒ๋žตํ•˜์‹ ๊ฑฐ ๊ฐ™์ง€๋งŒ)ย  username,
password๊ฐ€ ์ถ”๊ฐ€๋˜์–ด์•ผ ํ•˜์ง€ ์•Š์„๊นŒ ์‹ถ์Šต๋‹ˆ๋‹ค.
----------------------------

=> ์˜ˆ์ œ์—์„œ๋Š” DB๊ฐ€ derby์˜ embedded ๋ฒ„์ „์ด๋ผ id/password๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‹ค๋งŒ ๊ทธ ์™ธ์˜ DB๋ฅผ ์‚ฌ์šฉํ• ๋•Œ๋Š” ๋ง์”€์ฃผ์‹ ๊ฒƒ ์ฒ˜๋Ÿผ id/password๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

268p ์ค‘๊ฐ„ ๋ฐ์ดํ„ฐ์…‹ ์ฝ”๋“œ expected_seller.xml
item์ด๋ž€ ํ…Œ์ด๋ธ”์„ ์ฑ… ์˜ˆ์ œ์—์„œ ์‚ฌ์šฉํ•œ ์ ์ด ์—†์œผ๋ฏ€๋กœ <item /> ํ•ญ๋ชฉ ์‚ญ์ œ

290p ์ค‘๊ฐ„ Book ํด๋ž˜์Šค ์†Œ์Šค์ฝ”๋“œ
super()๋ฉ”์†Œ๋“œ๋Š” ๋ฌด์˜๋ฏธํ•จ. ์ดํด๋ฆฝ์Šค์˜ ์ฝ”๋“œ ์ž๋™์ƒ์„ฑ ๊ธฐ๋Šฅ์„ ์ด์šฉํ•ด์„œ ์ƒ์„ฑ์ž๋ฅผ ๋งŒ๋“ค๋•Œ ๋ผ์–ด๋“ค์–ด ๊ฐ”์Šต๋‹ˆ๋‹ค.p296 Player ํด๋ž˜์Šค ์†Œ์Šค์ฝ”๋“œ์˜ super() ๋ฉ”์†Œ๋“œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€. ์•„๋ฌด ์˜๋ฏธ๊ฐ€ ์—†์Œ.


p293 LENIENT_ORDER ์†Œ์Šค์ฝ”๋“œ, p295 ์•„๋ž˜์ชฝ ์†Œ์Šค์ฝ”๋“œ ์ปฌ๋ ‰์…˜์˜ ์ˆœ์„œ๊ฐ€ ๋‹ค๋ฅธ ๊ฒฝ์šฐ ๋ถ€๋ถ„
-------์ฃผ์‹ ์˜๊ฒฌ-------------

expected์™€ actual ์ˆœ์„œ๊ฐ€ ๋ฐ”๋€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. (ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ์— ์˜ํ–ฅ์€ ์—†์Šต๋‹ˆ๋‹ค.)
----------------------------
=> ๋ฐ”๋€Œ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์˜ˆ์ œ ๋ฌธ์žฅ์„ ์งง๊ฒŒ ๋งŒ๋“ค๋‹ค๋ณด๋‹ˆ ๊ทธ๋ ‡๊ฒŒ ๋ณด์…จ๋˜๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
myList๋ฅผ ์–ด๋”˜๊ฐ€์—์„œ ๋ฐ›์•„์˜จ๋‹ค๊ณ  ์ƒ๊ฐํ•œ๊ฒƒ์ด๊ณ , expected๋Š” ํ•˜๋“œ์ฝ”๋”ฉ๋œ ๊ฐ’( Arrays.asList..)์ธ ๋ชจ์Šต์ž…๋‹ˆ๋‹ค. ์ด ๋‚ด์šฉ์€ ์ด์–ด์„œ ์ ์–ด์ฃผ์‹  293p์™€ 295p ๋ชจ๋‘ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.


303p์˜ DatabaseRepositoryTest๋Š” ์˜๋„ํ•œ ๋Œ€๋กœ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. Repository๊ฐ€ ์ธํ„ฐํŽ˜์ด์Šค์ด๊ณ  ๊ทธ์— ๋Œ€ํ•œ ๊ตฌํ˜„ ์ผ€์ด์Šค ์ค‘ ํ•˜๋‚˜์ธ DatabseRepository์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

2010๋…„ 8์›” 20์ผ ์˜ค์ „ 12:25, mOer <ethd...@gmail.com>๋‹˜์˜ ๋ง:
์ฑ•ํ„ฐ 5, 6 ๋ณด๋ฉด์„œ ์ฐพ์€ ์†Œ์Šค ์ฝ”๋“œ ์˜คํƒ€์ž…๋‹ˆ๋‹ค.
Reply all
Reply to author
Forward
0 new messages