JUnit5 Тестирование JDB C функция - PullRequest
0 голосов
/ 04 мая 2020

У меня есть следующая функция 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()?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...