меня такая ситуация, что мне нужно, чтобы проверить, где рефакторингом код не представляется возможным (по организационным причинам :().Jmockit- издеваться Private Medhod вернуть сложный объект, а затем использовать его для ожидания()
class ClassToTest {
private ComplexObject createComplexObject() throws SomeException{
//create the complex object
}
public ReturnObject methodToTest(RequestObject reqObj) throws SomeOtherException {
ComplexObject complexObj = createComplexObject();
int answer = complexObj.doSomething();
return new ReturnObject(answer);
}
}
Большинство образцов я вижу, вокруг вызова частных методов и они возвращают строку или Int и т.д. Так что здесь требование немного дополнительно:
- Как частный метод и метод для тестирования находятся в том же классе, который необходимо проверить
- нужно вызвать частный метод для возвращения макетого внедрения ИТ
- Используй это насмешка реализации вернуть окончательный ответ
Пожалуйста консультации по этому вопросу. Все примеры, которые я вижу, до такой степени, чтобы насмехаться с частным методом, чтобы вернуть String
/int
, тогда как здесь мне нужен сложный объект (который издевается сам), а затем использовать его для возврата окончательного ответа из метода, который находится под контрольная работа.
Благодарим за отзыв. Я просто заметил, что абстрактный суперкласс ComplexObject имеет пару статических инициализаторов, которые создают ошибки, когда выполняется вызов отражения конструктору ComplexObject, и поэтому тест терпит неудачу. Каким должен быть подход для таких случаев, чтобы переопределить абстрактный экземпляр суперкласса static varialble/blocks? –
спасибо, я понял. –