Макет с помощью Query BuilderC#

Место общения программистов C#
Anonymous
Макет с помощью Query Builder

Сообщение Anonymous »

Я создал проект, в котором есть репозиторий и репозиторий запросов. Метод Query() в каждом репозитории возвращает IQueryBuilder для выполнения каких-либо действий.

У меня есть метод, как показано ниже, в классе User:

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

public class User
{
//...

public async Task GetCurrentState(IEventRepository entRepository)
{
var lastWorkdayWeekEvents = await eventRepository.Query()
.ByUserId(this.Id).ByDateTimeRange(DateTime.UtcNow.AddDays(-3),
DateTime.UtcNow.AddDays(1)).FilterAutomatic().
ToListAsync();

//return ...
}
}
Я хотел бы протестировать этот метод. Я думал использовать Moq. Я хотел бы высмеять метод ToListAsync().

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

    [Fact]
public async void GetCurrentState()
{
//arrage
var lastEvents = new Task(() => new List
{
new Event{ActivityId = ActivityId.BoxesIn, Address =  new Address{Id = 99}}
});

var eventRepository = new Mock().Object;
var eventQueryBuilder = new Mock().Setup(x => x.ToListAsync()).Returns(() => lastEvents);

var user = new User();
var result = await user.GetCurrentState(eventRepository);
//...

}
Я получаю нулевую ссылку, потому что eventRepository.Query() возвращает нулевое значение. Нужно ли мне издеваться над всеми методами возврата из QueryRepository, чтобы все работало? Как мне заставить его работать без особого труда?

Подробнее здесь: https://stackoverflow.com/questions/446 ... ry-builder

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