๋จผ์ ์ข์ ์ฑ
์จ์ฃผ์
์ ์ ๋ง ๊ฐ์ฌํฉ๋๋ค. 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();
ํ ๋ฒ ํ์ธํด ๋ณด์ธ์~
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
์์ ๋๋๋ฐ ์ด๊ฑด ์คํ์ธ์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค;
์ฑํฐ 5, 6 ๋ณด๋ฉด์ ์ฐพ์ ์์ค ์ฝ๋ ์คํ์ ๋๋ค.