Как использовать FakeItEasy для подделки сложного анализа запроса linq в словарьC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как использовать FakeItEasy для подделки сложного анализа запроса linq в словарь

Сообщение Anonymous »

Я пытаюсь создать метод тестирования с использованием fakeItEasy для следующего фрагмента кода. Он запрашивает список объектов из базы данных и создает из него отдельный словарь:

Код: Выделить всё

var animals = _dataService.Query()
.Where(x => x.Species == 2
.GroupBy(i => i.Code)
.Select(i => i.FirstOrDefault())
.ToDictionary(i => i.Code, i => i);
Я настраиваю тест следующим образом:

Код: Выделить всё

// Arrange
var fakeIDataService = A.Fake();
var fakeMapper = A.Fake();

var monkey = new Animal
{
Id = 1,
Description = "Monkey",
Code = "MKY",
Species = 2
};

var animals = new Dictionary()
{
{ monkey.Code, monkey}
};

A.CallTo(() => fakeIDataService.Query()
.Where(x => x.Species == 2
.GroupBy(i => i.Code)
.Select(i => i.FirstOrDefault())
.ToDictionary(i => i.Code, i => i)
).Returns(animals);

// Act
var service = new ProcessAnimalLines(fakeIDataService, fakeMapper);

// Assert
A.CallTo(() => fakeIDataService.SaveChangesAsync()).MustHaveHappened(Repeated.Exactly.Once);
Когда отладка компилятора прерывается при попытке создать A.CallTo, возвращающий словарь животных, он даже не доходит до части действия.
Это ошибка, которую выдает визуальная студия:

Код: Выделить всё

System.ArgumentException : The specified object is not recognized as a fake object.
Это работает, получая список из базы данных и затем вручную преобразуя его в словарь, но мне бы очень хотелось все исправить сразу.

Подробнее здесь: https://stackoverflow.com/questions/789 ... dictionary
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как использовать FakeItEasy для подделки сложного анализа запроса linq в словарь
    Anonymous » » в форуме C#
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • FakeItEasy автоматически издевается над чем-либо
    Anonymous » » в форуме C#
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Невозможно установить возвращаемые значения с помощью FakeItEasy
    Anonymous » » в форуме C#
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Как создать HttpResponseHeaders для FakeItEasy
    Anonymous » » в форуме C#
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous
  • Запрос Mongo Linq игнорирует индивидуальную сериализацию аргумента LINQ с использованием провайдера LINQ v3
    Anonymous » » в форуме C#
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous

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