Я не знаком с тестированием. xml, но Mockito сразу приходит на ум для этого: http://mockito.org.
- добавьте Mockito в свой проект (например, через страницу build.gradle)
- добавьте импорт в тестовый файл:
import static org.mockito.Mockito.*;
в вашем тестовом классе создайте имитацию класса, который имеет метод generateRandomStringForMail (). В моем текущем проекте у меня есть
DefaultFileService mockFileService = mock(DefaultFileService.class);
определите, что должен возвращать метод в этих условиях тестирования, например
when(mockFileService.generateRandomFileName()).thenReturn("fileName");
Всякий раз, когда вашим тестам необходимо использовать результат рассматриваемого метода, вы можете использовать «fileName», потому что вы сказали тестовой среде дать этот ответ. В моем проекте есть метод обновления файла изображения, связанного с элементом инвентаризации, который включает использование DefaultFileService для генерации случайного имени файла, а затем передачу файла изображения и нового имени файла в DefaultFileService для сохранения файла в системе. Мой тестовый код не может увидеть или угадать, какое имя файла на самом деле будет создано, но моя строка «когда» выше решила эту проблему для целей тестирования моего класса QuiltController:
quiltController.update(data, mockFile);
verify(mockFileService).save(mockFile, "fileName"); // confirms the save() method was called with the expected parameters
It кажется очень похожим на то, что вы пытаетесь сделать, поэтому, надеюсь, это поможет вам продолжить, если вы действительно хотите изучить Mockito. Не удивляйтесь, если вам потребуется реорганизовать часть вашей работы, чтобы сделать ее более тестируемой. Я это сделал, и в результате получил лучший код. Дайте ему go :)