【发布时间】:2012-08-24 07:37:50
【问题描述】:
我想使用 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 将参数检查为“等于”吗?
非常感谢!
【问题讨论】:
标签: c# unit-testing tdd rhino-mocks