É possível substituir um método nativo em uma classe Java no Android / Dalvik?

Eu estou testando unidade de uma classeTestMe usando EasyMock e um de seus métodos (digamosmethod(N n)) espera um parâmetro do tipoN que tem um método nativo (digamosnativeMethod()).

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

        n.nativeMethod();

        // Do more stuff
    }
}

method() precisa invocarN.nativeMethod() em algum momento, e o problema que estou tendo é que meu objeto mock do Easymock para N é incapaz de sobrescrever o método nativo. Eu não possuo classe N, mas posso refatorarTestMe de qualquer maneira necessária.

Eu decidi fazer minha própria aulaFakeN extends N que substituinativeMethod fazer 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
    }
}

mas enquanto o compilador não reclama, quando eu executo o teste parece queN.nativeMethod() é o que está sendo invocado e nãoFakeNs versão.

Existe uma solução aqui que eu possa usar?

questionAnswers(1)

yourAnswerToTheQuestion