私は現在Rhino-mocksを学んでおり、ユニットテストとモックの境界線を混乱させていると思います。以下の例では、Get()をテストしようとしている読み取り専用のCount()プロパティがあります(説明のみを目的とした非常に工夫された例)。Assert.AreEqualのコメントが示すように、Count()プロパティの結果は3であるはずなのに2です。
私の質問は、Rhino-mocksを使用して実際にオブジェクト(この場合は読み取り専用プロパティ)をスタブし、モックIProductオブジェクトのget_Count()プロパティのロジックをテストできますか?
public interface IProduct
{
int Count { get; }
}
public class Product : IProduct
{
private int count;
public int Count
{
get { return count + 1; }
}
}
public class TestFixture
{
[NUnit.Framework.Test]
public void TestProduct()
{
MockRepository mock = new MockRepository();
IProduct product = mock.Stub<IProduct>();
product.Stub(p => p.Count).Return(2);
mock.ReplayAll();
Assert.AreEqual(3, product.Count); //Fails - result from product.Count is 2
mock.VerifyAll();
}
}