Como posso definir um valor para um objeto Rhino zombado?
-
18-09-2019 - |
Pergunta
Eu tenho um cenário como este:
form = MockRepository.GenerateMock<IAddAddressForm>();
mediator = new AddAddressMediator(form);
O mediador é o objeto real em teste e precisa ser capaz de definir valores para o objeto "forma".
Mas a única maneira que eu posso ver com os valores definidos para o objeto de formulário é assim:
form.Stub(x=>x.FirstName).Return(item.FirstName)
Eu não quero estar fazendo isso no meu código real.
Am I faltando o ponto de simulações?
Solução
Stubs tem suporte embutido para o comportamento propriedade. Nos casos em que você não está usando tocos, você pode usar o PropertyBehaviour () método para um efeito semelhante.
Dentro do mediador, você deve estar usando o objeto form
normalmente - não deve saber que ele foi entregue um objeto falso.
Este código:
form.Stub(x=>x.FirstName).Return(item.FirstName)
não deve estar no seu objeto real, mas pode ser parte de sua test para definir as expectativas de como você vai usar o seu objeto fictício.
Editar:
Do que você forneceu, não posso julgar se você está "perdendo o ponto de simulações". O objectivo essencial é proporcionar uma forma de código de teste que possui dependências em isolamento a partir essas dependências. Ter um olhar para o ensaio de Martin Fowler " Mocks Não são Stubs ", eo uso secção orientação do Rhino Mocks documentação .