Tagged

TDD

A collection of 32 posts

봄싹

[봄싹] XP 적용 시나리오 3. 개발하기

본격적으로 개발을 해야하는데, 봄싹에서는 오프라인에서 페어로 작업을 해보기도 했지만, 그렇게 자주 충분히 페어 프로그래밍을 했다고 볼 수는 없습니다. 앞으로도 좀 더 꾸준히 시도를 해봐야 그 효용이나 장단점을 파악할 수 있을 것 같습니다. 개인적으로는 뭔가 대화를 나누면서 코딩할 상대가 있어서 안심이 되긴 합니다. DB update 쿼리가 어떻게 되더라? 이거 무슨 리팩토링이지?

genericdao

[GenericDao] 하이버네이트 GenericDao

먼저, GenericDao를 만들어 쓰면 좋은 이유를 생각해보겠습니다. – 모든 DAO에서 중복되거나 반복되는 코드를 상당량 줄일 수 있습니다. – 테스트도 그만큼 줄일 수 있습니다. – 개발이 좀 더 빨라집니다. – 비슷한 기능을 하는 메서드 이름을 통일할 수 있습니다. Entity 당 DAO를 쓰면 좋은 점과 타입-안정성을 제공하는 DAO 패턴을 사용하면 좋은 점

@Before

JUnit에서 setUp() 또는 @Before를 사용하는 이유?

참조: http://stackoverflow.com/questions/512184/best-practice-initialize-junit-class-fields-in-setup-or-at-declaration JUnit은 각각의 테스트를 독립적으로 테스트하기 위해 테스트 마다 개별적인 객체를 생성합니다. 따라서.. public class SomeTest extends TestCase {    private final List list = new ArrayList();     public void testPopulateList()    {        // Add stuff to the list    

봄싹 스터디

봄싹 3기 TDD 스터디 장소 시간 확정 됐습니다.

봄싹 3기 첫 번째 모임 장소, 시간, 참가자 확정 봄싹 블로그도 꼭 구독해주세요. 윗 글에 댓글을 다신 다음에 참석하시면 됩니다. 정말 간단하죠. 비용은 5천원입니다. 장소는 신촌. 시간은 오후 4~6시 두 시간. 뭘하냐면.. 처음이니만큼.. 참가자 분들 소개와 봄싹 소개 및 이번 TDD 스터디 개요와 진행 방법을 정하고 공유하겠습니다. 최대 25인까지

TDD

TDDBE - xUnit 23장

드디어 마지막이군요. ToDo테스트 여러 개 실행하기 여러 개 테스트를 한 번에 묶어서 실행합니다. 테스트 코드를 실행하던 메인 메소드를 보고 그 중복을 제거하려는 시도에서 비롯된 거 같습니다. new TestCaseTest(“testTemplateMethod”).run().summary();new TestCaseTest(“testResult”).run().summary();new TestCaseTest(“testFailedResultFormatting”).run().summary();new TestCaseTest(“

TDD

TDDBE - xUnit 18장.

파이썬으로 되어있는 예제라서, TDD(테스트 주도 개발) 책을 읽으면서 그냥 넘어갔던 부분인데.. 도무지 그냥 넘어갈 만한 부분이 아닌거 같아서 자바로 코딩해보기로 했습니다. 파이썬으로 코딩해도 되겠지만, 저는 자바로.. 그래서 18장을 우선 코딩해봤습니다. 캬~ 재밌네요. public class TestCaseTest extends TestCase {     public TestCaseTest(String methodName) {        super(methodName)

로마숫자

TDD 연습하기 - RomanNumber

1부터 1000사이의 숫자를 주면 로마숫자로 변환하는 프로그램을 TDD로 개발하시오. 점심시간에 밥 빨리먹고 심심하신 분들 한 번 해보세요. 재밌네요. 캬캬..토비형님은 자바코드 열댓줄 루비코드 대여섯줄이면 끝난다고 하네요… 워우… 자바코드로 짜실 분들을 위테 테스트코드를 올려드리겠습니다.         assertEquals(“I”, maker.convert(1));       

볼링게임

99% Line Coverage

몇일전 기록한 98% Line Coverage 기록을 깨습니다. 이제 남은 건 100% Line Coverage 뿐이군요. 볼링 게임을 구현한 것인데, 완성하는데 하루가 걸렸습니다. 아 어제 이맘때부터 계속 머릿속을 괴롭히던 녀석을 처리하니 피곤이 몰려오는 것 같습니다. 볼링 게임이 매우 간단한 것 같은데, Stike, Spare 점수 계산 그리고 마지막 프레임의 특이함 때문에 코드가 금방

DAO 테스트

Spring MVC 리팩토링 3

이전 글에서 Controller와 Service Layer를 단위 테스트 했습니다. 이번에는 DAO Layer를 단위(?) 테스트 하겠습니다. 이번에는 OASF를 사용하여 DBUnit과 spring-mock.jar에 있는 AbstractTransactionalDataSourceSpringContextTests 를 확장한 클래스를 사용하겠습니다. 토비님께서 만드셨는데 DBUnit 사용하기도 좋고 설정파일들의 위치를 특정 컨벤션만 지켜주면 알아서 읽어들입니다. 하지만 제가 테스트 하는 애플리케이션은 OSAF 설정파일들의 컨벤션을 알지 못했기 때문에;; 그냥

EasyMock

Spring MVC 리팩토링 2

이전 글에서 Controller 단위 테스트를 변경하여 Controller 수정에 성공했습니다.이번에는 MemberService를 단위 테스트 해서 MemberService의 구현을 수정하겠습니다. 이번에는 MemberService의 테스트가 만들어져 있지 않은 것을 확인했습니다. 만들어야겠습니다. public class MemberServiceImplTest {     private MemberService memberService;    private MemberDao memberDao;     @Before    public void setUp() {     

Controller 테스트

Spring MVC 리팩토링 1

Service Layer의 인터페이스를 살펴보니 다음과 같습니다.마지막에 이는 저 메소드의 이름과 하는 일이 맘에 안듭니다. 구현도 제가 했고 구현한지 2틀 정도밖에 안됐습니다. 더 늦기 전에 수정해야겠습니다. public Member findByMail(String mail) 다분히 DAO Layer에 있어야 할 것 같은 이름이며 하는 일 역시 그저 DAO 계층에 있는 메소드 하나를 호출하는 겁니다.

EasyMock

EasyMock을 사용한 Service 계층 테스트1

참조 : http://www.easymock.org/EasyMock2_2_Documentation.html 패키지 구조는 다음과 같습니다. MemberService를 구현하려는데 아직 MemberDao는 구현되어 있지 않고 MemberDao라는 인터페이스만 존재합니다.이 때 MemberServiceImpl 클래스를 TDD로 개발하기 위해 다음과 같이 작성했습니다. public class MemberServiceImplTest {          MemberService memberService;        MemberDao mockMemberDao;  

TDD

4. 화면과 모델 통합에서의 갈등

미쳐 생각하지 못했던 문제들이 슬슬 Clocking을 풀고 있습니다. 1. 저장을 어떤 형태로 할 것인가? 저는 text 파일로 저장 읽어 오기를 구현해 뒀습니다. 하지만 List를 저장하기엔..ObjectStream이 좋을 것 같네요. text로 읽어와서 파싱하는 노가다를 하기 싫어요~ ㅠ.ㅠ… 그렇다면 text 파일로 리포트를 만들어 주는 기능을 나중에 만들고 일단 저장하기와 불러오기는