В основном есть две вещи, которые вы можете проверить:
input.getA()
: смоделируйте тот экземпляр SomeInput
, который вы предоставляете тестируемому коду, затем вы можете проверить этот макетированный объект позже!
Session.builder()
, скорее всего, является статическим вызовом, поэтому используйте static mocking для предоставления объекта-компоновщика, который вы можете проверить позже. См. Официальную документацию о необходимых шагах для этого.
Сказав это, ваша настоящая проблема заключается в том, что вы написали «сложный для тестирования код». Сюрприз, это затрудняет тестирование. Вы видите, какой смысл иметь переменную Sessions локального метода во-первых. Если этот метод вернет , что s
, вы можете проверить, имеет ли он определенные свойства. Или, если s
будет полем этого класса, вы можете выполнить другую проверку, чтобы убедиться, что правильно настроенный сеанс был собран.
Короче говоря: PowerMock (ito) предлагает то, что вам нужно для этого кода. Прочитайте несколько хороших руководств, и у вас не должно быть особых проблем. Но также стоит инвестировать в улучшение тестируемого кода, чтобы его было проще тестировать. Мое эмпирическое правило: когда вам нужен PowerMock (ito) для тестирования вашего кода, тогда ваш рабочий код должен быть улучшен.