¿Es posible anular un método nativo en una clase Java en Android / dalvik?

Estoy haciendo una prueba de unidad de una claseTestMe usando EasyMock, y uno de sus métodos (por ejemplo,method(N n)) espera un parámetro de tipoN el cual tiene un método nativonativeMethod()).

class TestMe {
    void method(N n) {
        // Do stuff

        n.nativeMethod();

        // Do more stuff
    }
}

method() necesita invocarN.nativeMethod() en algún momento, y el problema que tengo es que mi objeto Easymock simulado para N no puede anular el método nativo. No tengo clase N pero puedo refactorizarTestMe En cualquier forma necesaria.

Decidí hacer mi propia claseFakeN extends N que anulanativeMethod hacer nada:

class FakeN extends N {
    FakeN(int pointer) {
        super(pointer);
    }

    @Override
    public void nativeMethod(Object o) {
        // super.nativeMethod() is an actual native method defined as:
        // public native void nativeMethod(Object o)
        //
        // IGNORE
    }
}

pero mientras el compilador no se queja, cuando ejecuto la prueba parece queN.nativeMethod() es el que está siendo invocado y noFakeNs versión

¿Hay alguna solución aquí que pueda usar?

Respuestas a la pregunta(1)

Su respuesta a la pregunta