????????????鱻 Mock ?????????????????????????????????????β???????????? Mock ???????????????????

???????裬??????????????? UserDAO????? UserDAO ?????????????????????л??????洢?????????洢????????????????????Щ?????£???????????????????? UT ????????????????Щ????£??????????????????????????????洢??????????????Щ???????????? UT ?б??????

????Java????


UserDAO:
Collection users = query(UserCriteria criteria);


????????????д Mock

????Java????


UserDao userDao = mock(UserDAO.class);
when(userDao.query(new UserCriteria())).thenReturn(users);// users ?????趨???????


????????????????д???????????????д

????Java????


when(userDao.query(any(UserCriteria.class))).thenReturn(users);// users ?????趨???????


????????д??????????????У????????????????????????????? UserCriteria ???????????????? Mock ?????????????????????????????????????????????????????? Hamcrest ?? Matcher ?????

????Java????


Matcher matcher = new BaseMatcher() {
    @Override
    public boolean matches(Object o) {
        UserCriteria criteria = (UserCriteria) o;
        assert criteria.field1;
        assert criteria.field2;
        assert criteria.field3;
        ....
        return true;
    }
};

when(userDao.query(argThat(matcher))).thenReturn(users);// users
 


???????????? assert ????? JUnit ?? assertEquals ????? assertThat ?????????????????TestNG ????????????????? Java ?е? assert ??????

?????????????????? Mock ??????????????μ??????

??????????????

???????????????????????????????????????????д?????????????Щ????£?????????????????????????Щ?????????????????????Щ?????????????????????????в????κ??????????????????????????Щ????????????????????????????????????? Hibernate??iBatis ???????????????????????????????????????磬Spring Framework ?????????????????? spring-test??Spring MVC ??а??????????Apache Camel ???????????????????????Camel Test?????????????????????????????????????????????????????????????????????????????????ɡ????????????????? Sip Servlet ?????????????????????