Короче говоря, да.
Частичные Mocks работают точно так же, как экземпляр издевающегося класса, но у них есть возможность добавить ожидания для метода, который вы задали как насмешку. Это обычно полезно, если у вас есть переопределяющий метод, который также полагается на реализацию суперкласса этого метода.
Похоже, что ваш пример использует устаревший метод createMock (класс, метод ...), поэтому я приведу пример того, как вы должны создать частичный макет для вашего класса Shape.
final IMockBuilder<Shape> mockBuilder = EasyMock.createMockBuilder(Shape.class);
mockBuilder.addMockedMethod(Shape.class.getMethod("removeShape", new Class[]{...}));
final Shape mockShape = mockBuilder.createMock();
Это обеспечит объект Shape, который ведет себя совершенно нормально, пока он не пытается использовать метод removeShape, где он будет требовать некоторые ожидания поведения.
Лично я очень редко использую версию addMockedMethod, которая принимает параметр Method. Обычно метод, который я издеваюсь, достаточно разный, чтобы использовать версию addMockedMethod (String). Поэтому я, скорее всего, воспользуюсь следующим:
final IMockBuilder<Shape> mockBuilder = EasyMock.createMockBuilder(Shape.class);
mockBuilder.addMockedMethod("removeShape");
final Shape mockShape = mockBuilder.createMock();
Это немного чище для моих глаз и дает те же результаты.
Имейте в виду, что эти частичные макеты живут по тем же законам, что и полные макеты. Итак, вы не можете издеваться над такими окончательными методами.
Надеюсь, что Помогает
Почему бы просто не попробовать? –
Я пробовал что-то подобное, и это не похоже на то, как работают все остальные методы, но поскольку я только изучаю структуру easymock, не уверен, что это возможно сделать другим способом или если я сделал что-то неправильное в моем примере – flexinIT