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