Tor*_*ups 1 linq unit-testing rhino-mocks
我经常使用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
Run Code Online (Sandbox Code Playgroud)
如何将服务存根以便为下面的单元测试启用(为简洁而保持简单)
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
Run Code Online (Sandbox Code Playgroud)
你能不能将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();
Run Code Online (Sandbox Code Playgroud)