Sombra robolétrica não está funcionando

Estou tentando criar um teste comRobolectric. Meu objetivo é poder substituir a funcionalidade de uma classe (que vem, por exemplo, de uma biblioteca e não consigo modificar o código) de um comportamento personalizado.

Eu criei este pequeno teste para simular o que eu quero fazer:

@RunWith(RobolectricTestRunner.class)
@Config(shadows = {ShadowMessenger.class})
public class TestShadow {

    @Test
    public void testMessenger() {
        OriginalMessenger messenger = new OriginalMessenger();
        String message = messenger.getMessage();
        Assert.assertEquals("Shadow messenger", message);
    }

    public static class OriginalMessenger {

        public String getMessage() {
            return "Original messenger";
        }
    }

    @Implements(OriginalMessenger.class)
    public static class ShadowMessenger extends OriginalMessenger {

        @Implementation
        public String getMessage() {
            return "Shadow messenger";
        }
    }
}

No exemplo,OriginalMessenger é a classe que está na biblioteca e fornece uma funcionalidade padrão. EShadowMessenger é a classe que contém o comportamento personalizado que quero aplicar sempre que usarOriginalMessenger.

No entanto, quando executo o teste, ele falha. O conteúdo demensagem é "Mensageiro original". Como se oShadowMessenger nunca foi usado.

O que estou fazendo errado?

questionAnswers(1)

yourAnswerToTheQuestion