Как высмеять LocalViewC#

Место общения программистов C#
Ответить
Anonymous
 Как высмеять LocalView

Сообщение Anonymous »

В своем коде я проверяю свойство Local объекта DbSet, чтобы увидеть, какие объекты уже добавлены в DbContext, но еще не зафиксированы в базе данных. Теперь мне нужно издеваться над этим свойством, но, похоже, я не могу. Это означает, что когда я тестирую свой код, он терпит неудачу, потому что свойство Local имеет значение null. Есть идеи, как я могу это сделать? Я добавил код, который сейчас использую для создания макета базы данных ниже, и он включает в себя код для создания LocalView, но он завершается с ошибкой NotImplementedException() при вызове конструктора.

Я использую последнюю версию .Net Core и Entity Framework.

С уважением
Марк

var localDbSet = new Mock();
var localList = new List().AsQueryable();
var mockDbSet = new Mock();
var queryableData = list.AsQueryable();

localDbSet.As().Setup(m => m.Provider).Returns(localList.Provider);
localDbSet.As().Setup(m => m.Expression).Returns(localList.Expression);
localDbSet.As().Setup(m => m.ElementType).Returns(localList.ElementType);
localDbSet.As().Setup(m => m.GetEnumerator()).Returns(localList.GetEnumerator());

mockDbSet.As().Setup(m => m.Provider).Returns(queryableData.Provider);
mockDbSet.As().Setup(m => m.Expression).Returns(queryableData.Expression);
mockDbSet.As().Setup(m => m.ElementType).Returns(queryableData.ElementType);
mockDbSet.As().Setup(m => m.GetEnumerator()).Returns(queryableData.GetEnumerator());
mockDbSet.Setup(d => d.Add(It.IsAny()));

// This fails with a NotImplementedException
var localView = new LocalView(localDbSet.Object);
mockDbSet.Setup(d => d.Local).Returns(localView);


Подробнее здесь: https://stackoverflow.com/questions/542 ... iewtentity
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»