У меня есть класс вроде этого:
public final class Foo
{
public native int getBar();
public String toString()
{
return "Bar: " + getBar();
}
}
Обратите внимание, что getBar() реализуется с JNI и что класс является окончательным. Я хочу написать тест junit для тестирования метода toString(). Для этого мне нужно высмеять метод getBar(), а затем запустить исходный метод toString() для проверки вывода.
Моя первая мысль заключалась в том, что это должно быть невозможно, но затем я нашел PowerMock, который поддерживает тестирование финальных классов и собственных методов в соответствии с функцией список. Но пока у меня не было успеха. Лучшее, что мне удалось, это насмехаться над полным классом, но затем тест протестировал смеющийся метод toString() вместо реального, который не имеет большого смысла.
Итак, как я могу использовать PowerMock для тестирования этого метода toString() сверху? Я предпочитаю использовать PowerMock с Mockito, но если это невозможно, у меня нет проблем с использованием EasyMock.