Rhino Mocks 3.6を使用すると、以下のコードを考えると、AssertWasCalledアサーションが通過することを期待しますが、そうではありません。代わりに、失敗したアサーションメッセージがあります。
"Rhino.Mocks.Exceptions.ExpectationViolationException:IBar.set_Model(7);期待される#1、実際の#0。"
IgnoreArguments()を試しても結果は変わりませんが、IBarプロパティをメソッドに変更し、引数を使用してメソッドが呼び出されたことを表明することはできます。
ここで何が欠けていますか?
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Rhino.Mocks;
public interface IFoo { }
public interface IBar { int Model { get; set; } }
public class Bar : IBar { public int Model { get; set; } }
public class Foo : IFoo
{
public void MyMethod(IBar bar)
{
bar.Model = 7;
}
}
[TestClass]
public class TestFoo
{
[TestMethod]
public void MyMethod()
{
var foo = new Foo();
var mockBar = MockRepository.GenerateStub<IBar>();
foo.MyMethod(mockBar);
mockBar.AssertWasCalled(b => b.Model = 7);
}
}