Я пытаюсь выполнить модульное тестирование следующих строк кода:
myDbContext.myDbSet.Load()
myObservableCollection = myDbContext.myDbSet.Local
Мой метод тестирования выглядит следующим образом:
Dim dataMyDbSet = New List(Of myDbSet) From {
new myDbSet() With{.Id=1},
new myDbSet() With{.Id=1},
new myDbSet() With{.Id=1}
}.AsQueryable()
Dim myDbSetMock = New Mock(Of DbSet(of myDbSet))
myDbSetMock.As(of IQueryable (Of myDbSet)).Setup(Function(m) m.Provider).Returns(dataMyDbSet.Provider)
myDbSetMock.As(of IQueryable (Of myDbSet)).Setup(Function(m) m.Expression).Returns(dataMyDbSet.Expression)
myDbSetMock.As(of IQueryable (Of myDbSet)).Setup(Function(m) m.ElementType).Returns(dataMyDbSet.ElementType)
myDbSetMock.As(of IQueryable (Of myDbSet)).Setup(Function(m) m.GetEnumerator).Returns(dataMyDbSet.GetEnumerator)
myDbSetMock.Setup(Function(x) x.Local).Returns(New ObservableCollection(Of myDbSet)(dataMyDbSet))
Dim MyDbContextMock = New Mock(of dbCrashtestNcap)
MyDbContextMock.Setup(function (f) f.myDbSet).Returns(myDbSetMock.Object)
Dim crashService = New CrashService(MyDbContextMock.Object)
Dim result = crashService.GetOcNcapKlassen()
Assert.That(result.Count,[Is].EqualTo(3))
это возвращает мне NullReferenceException в первой строке с myDbContext.myDbSet.Load ()
Все мои попытки либо насмехаться над Load (), либо вернуть значение для myDbContext.myDbSet (так что NullPointerException
не существует) потерпели неудачу
A (грязный) обходной путь, который работает, это изменить Load () в ToList (), но я бы предпочел оставить Load () или, по крайней мере, понять, есть ли решение.Заранее спасибо за помощь.Решением может быть C # или vb.net, это не так важно для меня