Chamada inválida, a última chamada foi usada ou nenhuma chamada foi feita
Eu estou recebendo este erro quando tento definir um mock para terPropertyBehavior()
:
System.InvalidOperationException: System.InvalidOperationException: Chamada inválida, a última chamada foi usada ou nenhuma chamada foi feita (verifique se você está chamando um método virtual (C #) / Overridable (VB)).
Estou tentando usar apenasRhino Mocks 3,5 (Organizar, agir, afirmar)
Aqui está o meu código:
private IAddAddressForm form;
private AddAddressMediator mediator;
[TestInitialize()]
public void MyTestInitialize()
{
form = MockRepository.GenerateMock<IAddAddressForm>();
mediator = new AddAddressMediator(form);
// Make the properties work like a normal property
Expect.Call(form.OKButtonEnabled).PropertyBehavior();
//I tried this too. I still get the exception
//SetupResult.For(form.OKButtonEnabled).PropertyBehavior();
}
[TestMethod]
public void TestOKButtonEnabled()
{
form.OKButtonEnabled = true;
Assert.IsTrue(form.OKButtonEnabled);
}
Eu sei que eu poderia usar um esboço (e para o código acima eu deveria), mas estou tentando aprender Rhino Mocks.
Eventualmente, quero ser capaz de garantir que várias propriedades tenham seus valores acessados. (Alguma dica de como verificar issoform.FirstName
foi acessado (ou seja, o getter foi chamado) também seria apreciado.)
Caso seja necessário, aqui está o código paraIAddressForm
:
namespace AddressBook
{
public interface IAddAddressForm
{
string FirstName { get; set; }
string LastName { get; set; }
string Address1 { get; set; }
string State { get; set; }
string Address2 { get; set; }
string ZipCode { get; set; }
string City { get; set; }
bool OKButtonEnabled { get; set; }
}
}
De qualquer forma, achei que virtual não seria um problema, pois estou passando em uma interface, mas estou claramente perdendo alguma coisa.