EasyMock и тестирование защищенных методов - PullRequest
1 голос
/ 03 февраля 2012

Попытка использовать EasyMock для проверки, вызывается ли защищенный метод, не уверен, что это лучший способ сделать это ... но, учитывая следующее, как я могу сказать, что didIgetCalled () действительно был вызван, когда callMe () был назван?

public Class testMe(){
    public int callMe(){
        if(true){
            didIgetCalled();
        }
        return 1;
    }
    protected int didIgetCalled(){
        return 2;
    }
}

Ответы [ 2 ]

2 голосов
/ 12 марта 2012

Это способ тестирования метода без использования EasyMock, однако я рекомендую следующее: если он не является общедоступным, не пишите для него тест

Method method = testMe.class.getDeclaredMethod("didIgetCalled", new Class[]{});
method.setAccessible(true);
testMe testClass = new testMe();
int invoke = (Integer) method.invoke(testClass);
assertEquals(2,invoke);

Я знаю, что это не полностью решит вашу проблему, но это начало :)

0 голосов
/ 16 мая 2014

Как насчет этого:

Вы можете сохранить то же имя пакета для вашего тестового класса, что и для тестируемого класса. Таким образом, если ваш тестируемый класс скажет, что MyClass.java находится в каталоге src с именем пакета com.abc.mypackage, то вы, ваш тестовый класс, скажете, что MyClassTest.java может находиться в каталоге test с тем же именем пакета. Смотрите изображение ниже:

enter image description here

...