EasyMock1.2 스타일의 API는 EasyMock2와는 스타일이 많이 다르다. EasyMock2 사용법은 아래와 같다.


빠른 습득을 위해 스프링의 문체를 분석하고, API를 토대로 주요 구문의 의미를 이해하는 방식을 취하겠다.

        MockControl dsControl = MockControl.createControl(DataSource.class);
        DataSource ds = (DataSource) dsControl.getMock();
        ...
        ds.getConnection();
        dsControl.setReturnValue(con, 2);
        ...
        dsControl.replay();
        ...
        HsqlMaxValueIncrementer incrementer = new HsqlMaxValueIncrementer();
        incrementer.setDataSource(ds);
        ...
        assertEquals(0, incrementer.nextIntValue());
        ...
        dsControl.verify();

막상 살펴보니 별 차이는 없다. 문장이 좀 지져분해질뿐...ㅡㅡ;

(2008.4.18 추가)

    public void testInitBinder() throws Exception {
        MockControl control = MockClassControl.createControl(ServletRequestDataBinder.class);
        ServletRequestDataBinder mockBinder = (ServletRequestDataBinder) control.getMock();
        // record
        mockBinder.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat(), false));
        control.setMatcher(new ArgumentsMatcher() {

            public boolean matches(Object[] expected, Object[] actual) {
                return expected[0].equals(actual[0]) && expected[1].getClass().equals(actual[1].getClass());
            }

            public String toString(Object[] arg0) {
                throw new UnsupportedOperationException();
            }
        });

        control.replay();
        controller.initBinder(new MockHttpServletRequest(), mockBinder);

        control.verify();

    }

EasyMock2와 달리 ArgumentsMatcher를 사용하여 매개변수 내용을 확인할 수 있다.

이올린에 북마크하기(0) 이올린에 추천하기(0)