me2day

테스트가 설계에 영향을 미치는 것이 맞는 것일까? 아무리 봐도 인터페이스나 Template method pattern을 쓸 필요가 없는데 오직 테스트 때문에 써야 한다면 설계를 바꾸는 것이 맞는지… Mock 같은 다른 방법을 쓰는 것이 맞는지…? 09.02.11 10:46

미투 0

11 개의 댓글이 있습니다.

백일몽 백일몽

mock을 쓰는게 맞을거 같은데요

09.02.11 10:49
맹수 맹수

왜 그래야 하나면 테스트를 하면 설계가 좋아지기 때문이죠! ㅎㅎㅎ

09.02.11 10:49
RedBaron RedBaron

mock~

09.02.11 10:51
fupfin gEEkInsIdE

그런데 고민하는 이유는 Mock을 쓴다고 해결할 수 있는 문제인지 살짝 고민이 되요. 그리고 전에 배우면서 Mock을 써야 하는 설계는 잘못된 설계라고 들어서... 그래서 가급적 제가 짠 코드 내 테스트에는 Mock을 안 쓰려고 하거든요.

09.02.11 10:56
fupfin gEEkInsIdE

진짜 고민은 결국 테스트를 원할하게 하려면 모든 객체를 인터페이스 기반으로 해야한다는 결론에 이르게 된다는 것... 나중에 어떤 테스트를 추가하게 될지 모르니 말이죠. 닥치고 인터페이스가 되는데... 아니면 언제나 인터페이스를 도출할 생각을 가지고 일하던가... 결국 또 설계와 리펙토링의 균형으로 귀결...

09.02.11 11:01
RedBaron RedBaron

Mock을 써야하는 설계가 잘못되었다고 생각 할 필요는 없지 않을까요? 그것과 Mock으로 해결되는 문제와는 다른듯.. Mock의 열렬한 지지자는 아니지만 기본적인 생각은 이런 글 과 유사합니다.

09.02.11 11:05
K-Dog K-Dog

테스트를 "원활하게 하려고" 가 목적인가요?

09.02.11 11:11
소내기 소내기

Template method pattern을 쓴다해도 구지 추상개체에 Mock을 만들어서 테스트할 필요가 있나요? 어차피 여러개 구현 클래스 많은데 그거 테스트 코드 만들면 뭐 대~~~~~충 된다고 봄. 그런데 전 TDD로 진행하면서 Interface와 추상클래스 막 튀어나오던데요????

09.02.11 11:14
fupfin gEEkInsIdE

RedBaron : 예 저도 같은 생각입니다. Toby님 결론은 쓰는 것이 비용상 이점이 된다면 쓰라는 것이고 저는 인터페이스를 만드는 것이 비용상 mock을 쓰는 것 보다 나은 상황에서도 단지 테스트 때문에 설계를 바꾸는 것이 맞느냐는 그런 고민입니다. (그런데 이렇게 말하다보니 살짝 결론이 날 것 같기도 하네요. ^^)

09.02.11 11:17
fupfin gEEkInsIdE

K-Dog : 글쎄요. 그 말에 답을 하면 결론이 날 것 같네요. ^^

09.02.11 11:19
fupfin gEEkInsIdE

소내기 : 추상 객체에 Mock을 쓴다는 게 아니고 테스트만을 위해서 필요 없는 추상화를 하는 것이 맞느냐는 거지.

09.02.11 11:20