Para testar um método protegido usando junit e mockito, na classe de teste (a classe usada para testar o método), criar uma “classe criança” que estende a classe protagonista e meramente sobrepõe-se ao método protagonista para torná-lo público de modo a dar acesso ao método à classe de teste, e depois escrever testes contra esta classe criança.
Para decompor isso, a afirmação do problema é que a classe de teste não tem acesso ao método protegido e, portanto, o desenvolvedor não pode escrever testes para validar o método protegido.
A solução menos que óptima é modificar o modificador de acesso ao público de modo a dar acesso à classe de teste a este método. Este é um compromisso ENORME ao ideal de encapsulamento e ao princípio de que um método deve ter a MÍNIMA visibilidade de que necessita.
A solução aqui é fornecer uma classe substituta que estenda a classe protagonista e cujo único objectivo é anular o método em questão e torná-lo público. Uma vez isso feito, a classe de teste trata esta classe como a classe protagonista e escreve afirmações sobre ela.