标签存档: spring

jmock2学习笔记

目前晚上学习jmock。

Issue: spring+annotations使用jmock

遇到了这个场景。stackoverflow上有人问过这个问题,这里贴一下。

http://stackoverflow.com/questions/1638911/mock-object-and-spring-annotations

关键是使用ReflectionTestUtils的方法。这个方法在spring-test工程的相关jar包。

    ...
    @Autowired
    private UserService	userService;
    private UserDao	userDao	= null;
    ...
    ReflectionTestUtils.setField(userService, "userDao", userDao, UserDao.class);
    ...

Issue:入参对象时。mock表达式传入对象必须和实际传入对象为同一句柄。

       
    final User _user = genUser();

    mockery.checking(new Expectations() {
        {
            one(userDao).queryUser(_user);
            List<User> userList = new ArrayList<User>();
            userList.add(genUser());
            userList.add(genUser());
            will(returnValue(userList));
        }
    });

    List<User> users = userService.queryUser(_user);

共用一个_user句柄。否则报错。

Issues:jmock一个异常错误

will(throwException(new RuntimeException("test exception")));

推荐链接:http://superleo.iteye.com/blog/143493

相关:jmock2学习笔记-续