У меня есть несколько статических методов использования в моем проекте, некоторые из них просто передают или генерируют исключение. Существует множество примеров того, как издеваться над статическим методом, который имеет тип возврата, отличный от void. Но как я могу издеваться над статическим методом, который возвращает void только «doNothing()
»?Как мне высмеять статический метод, который возвращает void с помощью PowerMock?
Не-аннулируются версия использует эти строки кодов:
@PrepareForTest(StaticResource.class)
...
PowerMockito.mockStatic(StaticResource.class);
...
Mockito.when(StaticResource.getResource("string")).thenReturn("string");
Однако, если применить к StaticResources
, который возвращает void
, компиляция будет жаловаться, что when(T)
не применим для void ...
Любые идеи?
Обходным решением будет, вероятно, просто, чтобы все статические методы возвращали Boolean
для успеха, но мне не нравятся обходные пути.
, к сожалению, это не будет работать, как при() принимает только переменную и StaticResource тип. ('StaticResource не может быть разрешен переменной ') – Pete
О да, извините, вы правы, мой код ошибочен, я привык к нестационарным издевательствам. Во всяком случае, я обновил свой запрос, чтобы отобразить правильный синтаксис. – Brice
Спасибо! Таким образом, наличие статических вспомогательных методов, не имеющих зависимостей, является плохой идеей? Конечно, я мог бы просто вставлять и возражать, что делает работу, но кажется, что имеет смысл поставить работников, которые не имеют зависимостей в статическом объекте, чтобы обозначить их независимость. – Pete