Код тестирования, который вызывает собственные методы

У меня есть такой класс:

public final class Foo
{
    public native int getBar();

    public String toString()
    {
        return "Bar: " + getBar();
    }
}

Обратите внимание, что getBar () реализован с помощью JNI и что класс final . Я хочу написать тест junit для проверки метода toString () . Для этого мне нужно смоделировать метод getBar () , а затем запустить исходный метод toString () , чтобы проверить результат.

Моя первая мысль заключалась в том, что это должно быть невозможно, но затем я нашел PowerMock , который поддерживает тестирование финальных классов и собственных методов в соответствии со списком функций. Но пока мне это не удалось. Лучшее, что мне удалось, - это издеваться над всем классом, но затем тест проверил фиктивный метод toString () вместо реального, что не имеет особого смысла.

Итак, как я могу использовать PowerMock для проверки этого метода toString () сверху? Я предпочитаю использовать PowerMock с Mockito , но если это невозможно, у меня нет проблем с использованием вместо него EasyMock .

10
задан kayahr 7 February 2011 в 06:44
поделиться