EasyMock

A collection of 23 posts

EasyMock

맥 애플리케이션 토렌트와 P2P 프로그램

http://www.mac-torrents.com/index.php 위 사이트에서 맥 애플리케이션과 관련된 토렌트를 구할 수 있습니다. http://www.limewire.com/download/ 저기서 받은 토렌트를 위의 limewire라는 무료 P2P(윈도우의 당나귀급) 프로그램에 드래그 앤 드랍을 하면 알아서 다운로드 해줍니다. 위 두 개의 프로그램 조합으로 이제 원

andStubAnswer()

EasyMock - Using Stub Behavior for Methods

EasyMock으로 생성한 Mock을 마치 Stub처럼 사용할 수 있습니다. 이 말이 무슨 말이냐면… Mock은 Stub과 달리 예측이라는 개념이 추가되어 있습니다. 따라서 예측 대로 Mock이 수행되지 않으면 AssertionError가 발생하는데, Stub은 그런 개념이 없고, 따라서 구현해둔 메소드가 호출 되든 말든 상관이 없습니다. 다시 돌아가서 Stub 처럼

anyInt()

EasyMock - Flexible Expectations with Argument Matchers

레코딩을 할 때, 테스트가 의존하는 메소드에 넘겨주는 아규먼트의 폭을 유동적으로 설정할 수 있습니다. 그때 사용하는 것들이 Argument Matcher입니다. 기본으로 제공해주는 것들을 사용할 수도 있고, 사용자가 새것을 정의해서 추가하여 사용할 수도 있습니다. 예를 들어.. memberService의 foo 메소드에 어떤 값을 넘겨주던 memberDao의 foo 메소드에는 integer 값이

checkOrder()

EasyMock - Strict Mocks, Switching Order Checking On and Off

createMock()을 사용해서 얻어낸 Mock 객체는 기본적으로 메소드를 호출하는 순서를 확인하지는 않습니다. 그런데 경우에 떄라서는 메소드가 호출되는 순서가 중요할 수 있는데, 그럴 땐는 두 가지 방법이 있습니다. 1. Mock객체를 생성할 때 createMock()이 아니라, createStrickMock()을 호출하여 mock 객체를 생성하면, 순서까지 확인합니다. MemberDaoMock = createStrickMocek(

anyTimes()

EasyMock - Relaxing Call Counts

테스트 대상이 호출하는 메소드의 호출 횟수를 예측할 때 횟수의 범위를 지정해서 어느정도 테스트에 여유를 줄 수 있습니다. 예를 들어, MemberServiceImpl의 add를 호출할 때, 이미 add하려는 Member 데이터의 email이 DB에 존재하는지 확인하기 위해서, DB에 findByEmail()을 한 번 이상 호출 한다고 가정하겠습니다. 이 메소드는 정확히

EasyMock

EasyMock - Changing Behavior for the Same Method Call

같은 메소드가 여러번 호출 될 때, 매번 예측되는 결과가 다르다면.. memberDao.add(member); // Member 객체가 무사히 저장된다.memberDao.add(member); // 예외가 발생한다. 이런 경우에 그냥 fluent interface로 계속해서 andReturn() 이나 andThrow()를 호출하여 recording 할 수 있습니다. memberDao.add(member)    .andReturn(resultMember)

andReturn()

EasyMock - Specifying Return Values

테스트의 대상이 사용하는 Mock의 메소드가 반환할 값이 필요한 경우에 다음과 같이 할 수 있습니다. 1. 예상되는 메소드 호출을 expect() 메소드로 감싸기.2. andReturn(Object returnValue) 사용해서 예상되는 리턴값을 expect() 메소드 뒤에 .으로 이어서 호출하기 public void testVoteAgainstRemoval() { mock.documentAdded("Document"); // expect document addition // expect

EasyMock

EasyMock - Expecting an Explicit Number of Calls

같은 메소드 호출을 여러번 하는 경우 그런 행위를 녹화하기 위해서, 메소드를 여러번 호출할 수도 있지만. public void testAddAndChangeDocument() { mock.documentAdded("Document"); mock.documentChanged("Document"); mock.documentChanged("Document"); mock.documentChanged("Document"); replay(mock); classUnderTest.addDocument("Document", new byte[0]); classUnderTest.addDocument("Document", new byte[0]

EasyMock

Spring MVC 리팩토링 2

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

Controller 테스트

AbstractModelAndViewTests 사용하여 Controller 테스트하기

컨트롤러의 주된 목적은 handleRequest안에 Request와 Respnse 객체를 넣어서 결국 ModelAndView 객체를 반환하는 것입니다. 따라서 다음과 같은 결론을 조심스래 내놓을 수 있습니다. Controller 테스트 == ModelAndView 테스트 아직은 TDD에 익숙하지도 않고 테스트 클래스를 어떻게 작성해야 할지도 모르기 때문에;; 일단은 구현을 하고 그 것을 테스트 하는 방법을

EasyMock

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

참조 : http://www.easymock.org/EasyMock2_2_Documentation.html reset() 메소드 활용하기이 전글에서 원래 하나의 테스트 메소드에 넣어뒀던 내용을 세 개의 메소드로 쪼개두었습니다. 의도적으로 쪼갠 것은 아니였고 다만 expect() 메소드를 사용하여 MemberDao의 get() 메소드를 설정해 두었는데 Mock 객체의 특정 메소드를 여러 번 재정의 할

EasyMock

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

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

EasyMock

Easymock 연습하기 3탄

Easymock 연습하기 2탄에서는 mock 객체를 이용해서 void 형태의 메소드를 테스트 했습니다. 즉 올바른 인자가 들어가는지 확인을 한것입니다. 이번에는 나오는 값도 테스트를 해보겠습니다. 나오는 값을 테스트하기 위해서는 expect라는 메소드와 andReturn메소드를 사용합니다. 소스보기 [#M_ more.. | less.. | @Test    public void get(){       

You've successfully subscribed to Whiteship!