【发布时间】:2009-08-19 16:31:21
【问题描述】:
当我尝试将模拟设置为具有 PropertyBehavior() 时出现此错误:
System.InvalidOperationException: System.InvalidOperationException: 无效调用,已使用最后一次调用或未进行调用(确保您正在调用虚拟(C#)/可覆盖(VB)方法)..
我正在尝试仅使用 Rhino Mocks 3.5(排列、动作、断言)
这是我的代码:
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);
}
我知道我可以使用存根(对于上面的代码我应该),但我正在尝试学习 Rhino Mocks。
最终,我希望能够确保访问多个属性的值。 (任何关于如何检查 form.FirstName 是否被访问(即调用 getter)的提示也将不胜感激。)
如果需要,这里是IAddressForm的代码:
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; }
}
}
无论如何,我认为 virtual 不会成为问题,因为我正在传递一个接口,但我显然错过了一些东西。
【问题讨论】:
标签: c# visual-studio visual-studio-2008 rhino-mocks rhino-mocks-3.5