У меня есть метод, как это:Как издеваться над этим методом с помощью EasyMock и PowerMock?
public Object method() {
Object1 object1 = new Object1();
return object2.someMethod(object1);
}
Теперь мое предположение издеваться это:
public void methodTest() {
Object1 object1 = EasyMock.createMock(Object1.class);
PowerMock.expectNew(Object1.class).andReturn(object1);
Object2 result = new Object2();
EasyMock.expect(object.someMethod(object1)).andReturn(result);
EasyMockHelper.replayMocksFor(this);
result = myTestClass.method();
EasyMockHelper.verifyMocksFor(this);
}
Я получаю сообщение об ошибке, где ожидать метод не совпадая с чем в настоящее время называется. Он ожидает, что класс объекта EasyMock объекта1 передается объекту object.someMethod(), но получает не высмеиваемый класс объекта1.
Надеюсь, что имеет смысл и благодарит вас за помощь.
Добавление некоторых пол реального кода:
public Object1 methodToTest(Object2 someParameter) {
Object3 object3 = new Object3();
object3.setSomeMethod(EnumObject1.FOO);
return object4.getSometMethod(object5, someParameter, EnumObject2.BAR, object3).getSomeMethod();
}
object4 и object5 оба авто проводных в классе.
Не смешивать PowerMock и EasyMock – Jens
приведенный выше код правильный? как вы получаете 'object2' в' method' и 'object' в' methodTest() '? – YoungHobbit
object2 является autwired, а объект является переменной экземпляра в классе, который насмехается. –