我想使用 Rhino Mocks 跟踪对方法的调用。假设我有这个代码:
public class A
{
protected IB _b;
public A(IB b)
{
_b = b;
}
public void Run( string name )
{
_b.SomeCall(new C { Name = name });
}
}
public interface IB
{
void SomeCall( C c );
}
public class C
{
public string Name { get; set; }
// more attributes here
}
测试看起来像:
// prepare
var bMock = Rhino.Mocks.MockRepository.GenerateStrictMock<IB>();
bMock.Expect(x => x.SomeCall(new C { Name = "myname" }));
var sut = new A(bMock);
// execute
sut.Run("myname");
// assert
bMock.VerifyAllExpectations();
测试失败并出现ExpectedViolationException,因为 Rhino Mocks 框架检测到 2 个不同的 C 类。
如果被测对象将对象参数创建到被测方法中,我如何检查调用?有机会告诉 Rhino Mocks 将参数检查为“等于”吗?
万分感谢!