궁금합니다.

9 views
Skip to first unread message

아름냥

unread,
Mar 18, 2011, 8:20:28 AM3/18/11
to TDDBook-QNA
책에선 메소드를 테스트 할때 한 메소드에 여러 상태에 따라 나누어 메소드를 만들어 테스트 하는것을 추천하신다 했는데요..메소드
가 내부에서 분기되는 조건이 있을경우 나누어 하라는 말씀이신가요..아니면 하나의 메소드로 여러 픽스처 조건을 만들어서 테스트 하
라는 말씀이신가요??

tddbook

unread,
Mar 18, 2011, 11:30:46 AM3/18/11
to TDDBook-QNA
안녕하세요?

기본적으로 작성하신 메소드 내부에 분기가 있다면,
각각의 경우를 따로 테스트 메소드로 작성하는 걸 권장합니다.

TDD는 테스트를 기반으로 작성되기 때문에,
아마 케이스를 나누어서 진행하다보면

테스트 대상 메소드 내부에 분기문이 생기게 될 겁니다.

@Test
testA_case1(){
..
}

@Test
testA_case2(){
...
}

a(){

if (case1 ) {
// doSomething
} else {
// doSomething case2
}
}

대략 이런 모습이 되겠죠?

아름냥

unread,
Mar 20, 2011, 1:04:23 PM3/20/11
to TDDBook-QNA
아..그렇군요 ..감사합니다.

저 그런데 질문이 하나더 있는데요..

public void testAddDocument() throws Exception {

mockListener.documentAdded("New Document"); // mock에서 문서를 추가하는 메소드를 호
출한다..ok

replay(mockListener); 재생 ok <-- 이부분까진 이해 하겠는데..

documentBox.addDoucment("New Document", new byte[0]); <---
documentBox.addDoucment 호출하는데 얘랑 저위에 documentAdded 가 어떤 관계로 엮이는지

verify(mockListener); <-- 또 얘는 왜 에러가 나는지 ㅠㅠ.
}

얘는 다른예젠데요..

public void testDoSum() {
expect(mock.sum(1,2)).andReturn(3); // sum 이 1,2 면 3이다 ..OK
replay(mock); // 재생

this.assertEquals(3,runner.doSum(1,2)); // 역시 doSum에 1,2 넣음 3이
예상된다..OK

verify(mock); // 그런데..왜 또...AssertionError????? 가 난단 말입니까..ㅠㅠ
}

바쁘시겠지만...조언부탁드려요..ㅠㅠ

펭귄너구리

unread,
Mar 21, 2011, 4:01:10 AM3/21/11
to tddbo...@googlegroups.com
아. 책 그 부분에 오타가 있어서 에러가 나는것 같습니다.
죄송합니다. ;;;


참조해 주시겠습니까? :)

보시고 그래도 안되시면 알려주세요.

저도 다시 살펴보겠습니다!
그럼, 함께 해결해 보아요!!


2011년 3월 21일 오전 2:04, 아름냥 <yabg...@gmail.com>님의 말:
Reply all
Reply to author
Forward
0 new messages