Я бы здесь ничего не издевался.
У вас есть HashMap и пользователь.Чтобы иметь возможность работать с ними, они оба должны быть общедоступными.
Я не являюсь разработчиком Java, поэтому я оставлю аспект кодирования кому-то еще.
Я бы начал с внедрения UserStorage в класс (например, в конструкторе), чтобы вы могли затем использоватьэто и вы можете даже изменить реализации.Например, используйте интерфейс, чтобы при необходимости иметь несколько реализаций.
Как только вы это сделаете, вы сможете использовать его для извлечения пользователя из Службы, и вы можете отстаивать его.
Тест 1: добавить
- инициализировать пустое хранилище
- создать пользователя с ID = 1, имя = Петр
- вызвать saveOrUpdate с этим пользователем
- получить пользователя с идентификатором = 1 из хранилища
- Подтвердить, что оно соответствует введенному вами пользователю.
Тест 2: обновление
- инициализация пустого хранилища
- создание пользователя с идентификатором = 1, имя = Петр
- вызов saveOrUpdate для этого пользователя
- обновление имени пользователя до John
- вызов saveOrUpdate с обновленным пользователем
- извлечение пользователя с ID = 1 из хранилища
- Утверждение, что оно соответствует обновленному пользователю
добавить дополнительные тесты для нулевого пользователяили любые другие условия, которые вы хотите проверить.Я не стал бы насмехаться над этим, вместо этого протестировать реальные вещи.
это не включает изменение сигнатуры метода, а только способ, которым вы вводите свое хранилище в класс, который может быть с платформой IOC, если вы используете одинили просто DI, так что совсем не большие перемены.