Прошу совет по RhinoMocks
От: Lexxpin  
Дата: 14.01.10 10:10
Оценка:
Добрый день.
Столкнулся с одним юзокейсом, не могу понять как разрулить.
Есть у нас View, которую тестируем:
        public sealed class View 
        {
            IViewModel ViewModel { get; set; }

            public View(IViewModel viewModel)
            {
                ViewModel = viewModel;
            }

            public void UseDataSource()
            {
                ViewModel.DataSource.Refresh();
                ViewModel.DataSource.LazyLoad(true);
            }
        }

View зависит от ViewModel:
        public interface IViewModel
        {
            IDataSource DataSource { get; set; }
        }

А ViewModel в свою очередь от IDataSource:
        public interface IDataSource
        {
            void Refresh();
            int LazyLoad(bool t);
        }

Написал следующей тест и ожидаю его успешное завершение:
        [TestMethod]
        public void TesteViewAndVMAndDS()
        {
            var mocks = new MockRepository();
            var vm = mocks.DynamicMock<IViewModel>();
            var dataSource = mocks.DynamicMock<IDataSource>();
            Expect.Call(vm.DataSource).Return(dataSource).Repeat.Any();
            Expect.Call(dataSource.LazyLoad(true)).Repeat.Once();
            Expect.Call(dataSource.Refresh).Repeat.Once();
            mocks.ReplayAll();
            var view = new View(vm);
            view.UseDataSource();
            mocks.VerifyAll();
        }

Но он вылетает со следующей ошибкой:

InvalidOperationException occurred
Previous method 'IDataSource.LazyLoad(True);' requires a return value or an exception to throw.

Посмотрел доки и примеры использования, но пока не придумал как решить проблему.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.