В настоящее время я изучаю Rhino-mocks и думаю, что путаю грань между юнит-тестированием и mocking. В моем примере ниже у меня есть свойство Count () только для чтения, для которого я пытаюсь протестировать функцию Get () (очень надуманный пример только для обсуждения). Как отмечается в комментарии к Assert.AreEqual, результат свойства Count () равен 2, тогда как должно быть 3.
У меня вопрос: могу ли я использовать Rhino-mocks, чтобы фактически заглушить объект (в данном случае это свойство только для чтения) и проверить логику свойства get_Count () объекта mock IProduct?
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();
}
}