Ungültiger Anruf, der letzte Anruf wurde verwendet oder es wurde kein Anruf getätigt

Ich erhalte diese Fehlermeldung, wenn ich versuche, einen Schein zu habenPropertyBehavior():

System.InvalidOperationException: System.InvalidOperationException: Ungültiger Anruf, der letzte Anruf wurde verwendet oder es wurde kein Anruf getätigt (stellen Sie sicher, dass Sie eine virtuelle (C #) / überschreibbare (VB) Methode aufrufen).

Ich versuche nur zu benutzenRhino Mocks 3.5 (Anordnen, Handeln, Betätigen)

Hier ist mein Code:

    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);
    }

Ich weiß, ich könnte einen Stub verwenden (und für den obigen Code sollte ich), aber ich versuche Rhino Mocks zu lernen.

Schließlich möchte ich sicherstellen können, dass auf mehrere Eigenschaften ihre Werte zugegriffen wird. (Irgendwelche Hinweise, wie man das überprüftform.FirstName wurde zugegriffen (d. h. der Getter wurde aufgerufen), wäre auch erwünscht.)

Im Bedarfsfall hier der Code dazuIAddressForm:

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; }
    }
}

Wie auch immer, ich dachte, dass virtuell kein Problem sein würde, wenn ich eine Schnittstelle übergebe, aber mir fehlt eindeutig etwas.

Antworten auf die Frage(5)

Ihre Antwort auf die Frage