у меня есть что-то вроде этого, чтобы проверить:Moqing UnitOfWork с лямбда-выражения
public void example(ModelView modelView)
{
//...
var statustId= 1;
var requests = _unitOfWork.RequestRepository.Get(m => m.RequestStatusId == statusId);
var requests = _unitOfWork.RequestRepository.Get(m => m.RequestTypeId == modelView.RequestTypeId);
var oldRequests = _unitOfWork.RequestRepository.Get(m => m.Created == DateTime.Now.AddDays(-7));
//...
}
Как я издеваться все «GET» с различными данными?
Это то, что я получил до сих пор: не знаю, как должно выглядеть выражение, поскольку оно использует переменные из функции.
[Test]
public void Test()
{
//Arrange
_requestGenericRepo.Setup(m => m.Get(
It.Is<Expression<Func<Request, bool>>>(e => e.Equals(First GET - using local variable);
_requestGenericRepo.Setup(m => m.Get(
It.Is<Expression<Func<Request, bool>>>(e => e.Equals(Second GET - using variable from modelView));
_requestGenericRepo.Setup(m => m.Get(
It.Is<Expression<Func<Request, bool>>>(e => e.Equals(Third GET));
//Act
var response = _controller.Example(new ModelView
{
RequestTypeId= 1
});
//Assert
...
}
------------------- EDIT: ---------------------- ---------------------
Было бы неплохо знать, как это делается выше, но я могу изменить все Get(
В Get().Where
вот так:
public void example(ModelView modelView)
{
//...
var statustId= 1;
var requests = _unitOfWork.RequestRepository.Get().Where(m => m.RequestStatusId == statusId);
var requests = _unitOfWork.RequestRepository.Get().Where(m => m.RequestTypeId == modelView.RequestTypeId);
var oldRequests = _unitOfWork.RequestRepository.Get().Where(m => m.Created == DateTime.Now.AddDays(-7));
//...
}
[Test]
public void Test()
{
//Arrange
_requestGenericRepo.Setup(m => m.Get(
It.IsAny<Expression<Func<Request, bool>>>());
//Act
var response = _controller.Example(new ModelView
{
RequestTypeId= 1
});
//Assert
...
}
Являются ли каждое из этих выражений вызываемым в тестируемом методе в одном и том же варианте использования? – Nkosi
@Nkosi Да ... Я редактирую свой вопрос, но я был бы рад узнать, есть ли способ заставить его работать – Valter