유닛 테스트를 할 때 EasyMock Capture를 사용해야하는 경우에는 어떤 것이 있는지 잘 모르겠습니다. 웹 사이트에서 일부 자료를 읽었지만 이해가 정확한지 확신 할 수 없습니다.어떤 경우 EasyMock과 함께 Unit Test의 객체보다는 Capture를 사용해야합니까?
public class UserService {
private UserDao userDao;
public boolean register() {
User user = new User();
user.type = "VIP";
return userDao.insertUser(user);
}
}
public class UserServiceTest {
public void testRegister {
UserDao userDao = createMock(UserDao.class);
Capture<User> captureUser = new Capture<>();
expect(userDao.insertUser(capture(captureUser)))
.andReturn(true);
replay(userDao);
userService.setUserDao(userDao);
userService.register();
verify(userDao);
}
}
가 I이 경우 캡처를 사용해야 :
예를 들면 이하의 코드 사용에 대한 사용자 객체를 등록() 메소드 내부에 생성되기 때문에, 그것을 userDao의 인수 인 .insertUser (사용자). 그래서 캡쳐를 사용해야합니까?는 뜻이다 : 나는() testTargetClass.testTargetMethod을 테스트 할 때. testTargetMethod() 안에 또 다른 서비스 호출이 있고 그 인수가 testTargetMethod() 내부에서 작성된 경우, 인수에 대해 Capture를 사용해야합니까?
나는 그것을 테스트 코드 아래에 사용할 수 있을까요?
공공 무효 testRegister {
UserDao userDao = createMock(UserDao.class); User mockUser = new User(); mockUser.setType = "VIP"; expect(userDao.insertUser(mockUser)).andReturn(true); replay(userDao); userService.setUserDao(userDao); userService.register(); verify(userDao);
} 사전에
감사합니다!