Здравствуйте не так давно задался вопросом на тему того как тестировать сервис-слой в приложениях. Поискав немного информации в интернете нашел от одних, что нужно заводить тестовую БД и для нее писать UNIT - тесты. Другие в совю очередь сказали, что все делается на основной БД, но это мне не совсем понятно ведь должно же быть один тест = одному какому-тодействию( к примеру, если добавить пользователя в БД, его же надо будет потом удалить в этом же тесте, так как БД основная). К примеру взять вот мой код сервиса на Java(Spring Data), в качестве бибилиотеки для тестирвоания использую JUnit4.
@Service
public class UsersServiceImpl implements UsersService {
@Autowired
private UserRepository userRepository;
public List<User> getAllUsers() {
return userRepository.findAll();
}
public boolean isExistUser(String login, String password) {
User user = userRepository.findByLoginAndPassword(login, password);
return user != null;
}
public boolean removeUserByLogin(String login) {
try {
userRepository.deleteByLogin(login);
return true;
} catch (DataAccessException e) {
return false;
}
}
public boolean addNewUser(String name, String login, String password) {
try {
User user = new User(name, login, password);
userRepository.saveAndFlush(user);
return true;
} catch (DataAccessException e) {
return false;
}
}
}
Хотелось бы, чтобы кто-нибудь либо показал пример как это правильно делается, либо очень подробно рассказал об этом процессе. Заранее спасибо...
Конкретно в вашем случае, тестирование сервис слоя - это тоже самое, что тестирование слоя доступа к данным. Это значит, что вам необходимо настроить тестовую конфигурацию Hibernate, используя при этом IN_MEM базу данных, например HSQLDB. В ней HIbernate (в большинстве случаев) сам воссоздаст структуру базы данных, использую Entity, или (для сложных сценариев) можно воспользоваться патчем для инициализации базы данных, который тоже указывается в настройках Hibernate.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
с криптопро я раньше не работалНо сейчас в нашей компании возникла задача реанимировать сервис для подписи файлов
Всем приветУ меня есть страничка на которой находиться выпадающий список с именами кастомеров
При переводе координат у меня почему то не учитывается матрица View: