Ao escrever os testes de unidade para o Serviço Banco de Arquivos, me deparei com a seguinte exceção nos testes que utilizam o GMock:
groovy.lang.MissingMethodException: No signature of method: org.gmock.internal.metaclass.MockProxyMetaClass$2.doCall() is applicable for argument types: () values: []
Possible solutions: call(), equals(java.lang.Object), isCase(java.lang.Object), findAll(), findAll(groovy.lang.Closure), notify()
A solução que encontrei, após umas pesquisas meia boca, é adicionar a seguinte chamada em cada teste que utilizar o GMock:
ExpandoMetaClass.disableGlobally()
Não, não vá pensando que colocar isso no setUp ou no controlador irá resolver suas duplicações. Tem que ser em cada teste mesmo.
EFEITO COLATERAL Caso o método que estiver sendo testando faça um render("text/json"){objetoCustomizado}, então uma exceção irá acontecer, ele não consegue fazer o cast do seu objeto para JSON. Isso acontece por conta do
ExpandoMetaClass.disableGlobally()
Porém, se for renderizada uma lista, ou um conjunto de propriedades, estilo
render(text/json){prop = Um valor}
Então a renderização acontece normalmente.
Posted by Fred Policarpo to ZeroGlosa (2013-01-29 16:17)