Pergunta

Eu tenho um problema com zombaria parcial usando Rhino Mocks:

var authentication = (FormsAuthenticationService)_mocks.PartialMock(
  typeof(FormsAuthenticationService));
Expect.Call( delegate{ authentication.SetAuthCookie(null, null); }).IgnoreArguments();

.. e eu recebo NullReferenceException em "Espere." linha ..

Vou apenas acrescentar que FormsAuthenticationService implementos IAuthentication

Foi útil?

Solução

Existe uma boa razão que você está tentando zombar a classe física, ao invés da interface? Pergunto isso porque existem 2 problemas potenciais com zombando FormsAuthenticationService:

  1. A classe não pode ter um padrão construtor sem parâmetros (em que caso, você precisa especificar um método de sobrecarregado mocks.PartialMock).

  2. O SetAuthCookie tem que ser virtual. estruturas simuladas normalmente pode zombar classes somente não selados, e apenas os membros virtuais de tal classe.

Para contornar esses problemas, eu recomendo zombando IAuthentication vez. Zombando de interfaces não tem essas limitações. Aqui está o código que você escreve:

var authentication = _mocks.DynamicMock<IAuthentication>();
Expect.Call(() => authentication.SetAuthCookie(null, null)).IgnoreArguments();
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top