Rhino Mocks - заглушить что-то, что возвращает IQueryable (Of T) - PullRequest
1 голос
/ 26 августа 2009

Я много работаю с Rhino Mocks 3.5, но недавно столкнулся с чем-то, чего я никогда раньше не пробовал. Я хочу отключить сервис и настроить возвращаемое значение - простые вещи на самом деле

Единственная проблема заключается в том, что теперь мой сервис не возвращает IList, а вместо этого IQueryable

Так что, когда я пытаюсь сделать что-то подобное - оно взрывается

<TestMethod()> _
    Public Sub Should_Populate_Users_Property_On_View_During_OnInit()
        Dim View As IUserView = MockRepository.GenerateStub(Of IUserView)()
        Dim Service As IUserService = MockRepository.GenerateStub(Of IUserService)()
        Dim Presenter As New UserPresenter(View, Service)

        Dim StubUserObjectCollection As New List(Of User)
        StubUserObjectCollection.Add(New User(1, "jdoe", "John", "Doe", 0, 0, 0, 1, 1))

        Service.Stub(Function(x) x.GetUserCollection()).[Return](StubUserObjectCollection)

        Presenter.OnViewInit()

        Assert.AreEqual(View.Users.Count, 1)
    End Sub

Как я могу отключить службу, чтобы включить модульный тест для приведенного ниже (для краткости все просто)

Public Sub OnViewInit()
    Dim UserList As List(Of User) = mUserService.GetUserCollection.Where(Function(x) x.Active = 1).OrderBy(Function(x) x.FirstName).ToList()

    mView.Users = UserList
End Sub

1 Ответ

7 голосов
/ 26 августа 2009

Разве вы не можете изменить коллекцию StubUserObjectCollection на IQueryable?

Dim SubList As New List(Of User)
StubList.Add(New User(1, "jdoe", "John", "Doe", 0, 0, 0, 1, 1))
Dim StubUserObjectCollection = StubList.AsQueryable();
...