JMock - É possível mocar uma atributo declarado em um método?

Pessoal,

eu tenho uma classe do tipo:

[code] public class Foo {

    public int doXYZ() {  
        Bar bar = new Bar();  
        int result = bar.doIt();  
  
        ....//faz alguma coisa com result
  
       return result;  
   }  

} [/code]

estou fazendo testes unitários dessa classe e gostaria de poder testar o método doXYZ(). Porem, o trecho “bar.doIt()” acaba invocando o BD. Logo, o ideal seria mocar a classe Bar e setar uma expectation para este método “bar.doIt()”. É possível fazer isso com atributos declarados com method-escope?

Não queria promover esse atributo “bar” para class-member-scope apenas por conta desta restrição nos testes unitários, até porque a única dependência da classe Foo com a classe Bar é neste método.

Enfim, é possivel ?

Não achei nada a respeito na documentacao do JMock…

Não é possível você fazer isso que você quer. Usando o new Bar() você está fazendo um acoplamento entre a classe Foo e Bar. Será que é isso mesmo que você precisa? Eu não acho uma boa prática, ainda mais porque me parece que a classe Bar acessa recurso externo (banco de dados).

O legal seria sim a classe Bar ser um membro da classe Foo e ainda, criar uma Factory para retornar esse Bar.

Valeu Jair…acho q não vai ter outro jeito mesmo.