ユニットテストを行うときにEasyMockキャプチャを使用する必要があるかどうかわかりません。 ウェブサイトでいくつかの資料を読んだことがありますが、私の理解が正しいかどうか分かりません。EasyMockでユニットテストのオブジェクトではなくキャプチャを使用する必要がありますか?
例えばコードの下に使用するには:ユーザーオブジェクトがレジスタ()メソッド内に作成されているので、それがuserDaoの引数です:
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);
}
}
が、私はこのケースでキャプチャを使用すべき.insertUser(ユーザー)。だから、私はそれをキャプチャを使用する必要がありますか?
それは、つまり:私がtestTargetClass.testTargetMethod()をテストしたいときです。 testTargetMethod()内に別のサービスコールがあり、その引数がtestTargetMethod()内に作成された場合は、引数としてキャプチャを使用する必要がありますか?
私はそれをテストするために以下のコードを使用できますか?
ます。public void {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);
}事前に
ありがとう!