Zombando de uma variável privada que é assumida como existente

Como você pode obter um objeto simulado no tempo de execução quando não é criado / inicializado na classe que está testando, não é estático (padrão singleton) ou você não tem algum tipo de construtor de teste para se conectar?

Em uma aula em que estou escrevendo um teste de unidade, me deparei com um cenário que ainda não encontrei / resolvi. Eu tenho um recurso JMS (umQueueConnectionFactory para referência, mas não importa), que é uma variável privada da classe que estou testando. Desde que tem ojavax.annotation.Resource anotação, em tempo de execução é assumido como disponível. Durante o teste, não é, o que cria a necessidade de zombar desse objeto.

Não é uma classe estática e não está sendo usada de maneira estática, se fosse, eu poderia facilmente zombar usando os vários métodos de escarnecimento estático que eu encontrei. Como o recurso nunca é criado localmente (em um construtor ou mesmo em um construtor de teste), não tenho como transmitir um objeto Mock para que, no tempo de execução do teste, o mock seja usado em vez do objeto real. Como posso zombar deste Recurso para que, quando o teste for executado, ele seja usado no lugar do@Resource objeto na classe que estou testando?

Para referência, o código está chamandocreateConnection() noQueueConnectionFactory que está lançando uma exceção de ponteiro nulo desde que o Factory não tenha sido inicializado / escamoteado.

@Stateless
public class Example{
  @Resource(name = "jms/exampleQCF")
  private QueueConnectionFactory queueFactory;

  ...

  public void testMe(){
    Connection connection = queueFactory.createConnection();
    ...
  }
}

questionAnswers(1)

yourAnswerToTheQuestion