我想跟蹤Rhino Mocks調用方法。假設我有這樣的代碼:Rhino Mocks,VerifyAllExpectations
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因爲犀牛嘲笑框架檢測2不同的C-類。
如果被測主體在被測方法中創建了對象參數,我該如何檢查該調用?有沒有機會告訴Rhino Mocks檢查參數爲「Equals」?
謝謝!
嗨,編譯器說:「不能將lambda表達式轉換爲類型'Rhino.Mocks.Constraints.AbstractConstraint',因爲它不是委託類型。」指向「x => x.Name =」myname「」 – Jordi
將賦值equals(=)固定爲比較(==)。 –
仍然是同樣的問題。我錯過了什麼? http://imageshack.us/f/708/errorah.png/ – Jordi