我有以下课程:
public class UsersHolder {
private Set<User> users = new HashSet<>();
public void addUser(User user) {
users.add(user);
}
...
}
用户没有setter方法
有没有办法测试addUser
方法?
答案 0 :(得分:3)
有办法。
@RunWith(MockitoJUnitRunner.class)
public class UsersHolderTest {
@InjectMocks private UsersHolder usersHolder;
@Mock private Set<User> users;
@Test
public void addUser_shouldAddUser() {
// given
User user = new User();
// when
usersHolder.addUser(user);
// then
Mockito.verify(usersHolder).add(user);
}
}
话虽如此,我不会测试这么简单的逻辑。此外,在这种情况下,集合成为应该来自外部的类依赖(通常集合被视为在类内部管理的数据持有者)。