У меня есть такой класс:
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 .