У меня есть следующая функция JDB C, которая обновляет базу данных для добавления нового пользователя
public class UserDaoImpl implements UserDao {
@Autowired
PasswordEncoder passwordEncoder;
@Autowired
DataSource datasource;
@Autowired
JdbcTemplate jdbcTemplate;
public int register(User user) {
String uniqueusername = "select * from users where username='" + user.getUsername() + "'";
List<User> users = jdbcTemplate.query(uniqueusername, new UserMapper());
if(users.size() == 0) {
String encryptedPassword = passwordEncoder.encode(user.getPassword());
String sql = "insert into users values(?,?,?,?,?,?)";
return jdbcTemplate.update(sql, new Object[] {
user.getUsername(),
encryptedPassword,
user.getFirstname(),
user.getLastname(),
user.getEmail(),
user.getAddress() });
}
else {
return 0;
}
}
Я пытаюсь протестировать эту функцию, используя JUnit5 и Mockito, однако я не слишком уверен в том, как это будет выполнено. У меня есть следующее:
@Mock
JdbcTemplate jdbcTemplate;
@Test
public void testRegister() {
UserDaoImpl userdaoimpl = new UserDaoImpl();
ReflectionTestUtils.setField(userdaoimpl, "jdbcTemplate", jdbcTemplate);
Mockito.when(...);
assertEquals(...);
}
Что мне нужно включить в Mockito.when()
и assertEquals()
?