У меня есть некоторые проблемы с тестовыми примерами Junit, ниже приведен случай: у меня есть метод под циклом внутри метода void:
List<Message> msgList = service1.getList();
for (Message message : msgList) {
StorageObject object = cloudStorage.readObject(anotherObject);
InputStream inputStream = object .getObjectContent();
String text = IOUtils.toString(inputStream);
// text to object mapping
// third party service call
}
в моем модульном тестовом примере, я сделал ниже насмешки:
- service1.getList () возвращает список 2 объектов сообщения
фиктивный объект хранения и предоставляет ему некоторые фиктивные значения, как показано ниже
StorageObject stObject = new StorageObject ();stObject.setObjectContent (new StorageObjectInputStream (new ByteArrayInputStream («Привет, это пустышка, и это будет формат json» .getBytes ()), null));Mockito.when (cloudStorage.readObject (Mockito.any ())). ThenReturn (stObject);
Когда я выполняю тестовый сценарий, для первой итерации он работает отлично, и выполнение метода возвращаетправильный результат, но для второй итерации inputStream не имеет допустимых значений, поэтому текст возвращается как нулевой, почему так? Любая помощь будет оценена.