Tôi đang cố gắng để thử phương pháp của một kho lưu trữ như thếMoq ReturnsAsync() với các thông số
public async Task<WhitelistItem> GetByTypeValue(WhitelistType type, string value)
sử dụng Moq ReturnsAsync, như thế này:
static List<WhitelistItem> whitelist = new List<WhitelistItem>();
var whitelistRepositoryMock = new Mock<IWhitelistRepository>();
whitelistRepositoryMock.Setup(w => w.GetByTypeValue(It.IsAny<WhitelistType>(), It.IsAny<string>()))
.ReturnsAsync((WhitelistType type, string value) =>
{
return (from item in whitelist
where item.Type == type && item.Value == value
select item).FirstOrDefault();
});
nhưng tôi nhận được lỗi này trong dòng "... ReturnsAsync ((Loại WhitelistType ...):
Không thể chuyển đổi biểu thức lambda thành loại 'Model.WhitelistItem' vì nó không phải là một loại đại biểu
WhitelistType là một Enum như thế:
public enum WhitelistType
{
UserName,
PostalCode
}
Tôi đã tìm kiếm bằng giờ và không tìm thấy bất kỳ câu trả lời cho vấn đề của tôi.
Bất kỳ manh mối nào?
vẻ như bạn cần phải xác định loại cho các đối số lambda đại biểu (loại WhitelistType, chuỗi giá trị) – BozoJoe
là nó có thể quay trở lại tham số truyền vào phương pháp như một loại trả về không đồng bộ, ví dụ như trong ---> Tác vụ ra? (ví dụ như vậy) –
Choco
@Choco không chắc bạn đang cố làm gì - hãy xem xét hỏi nó như một câu hỏi thay vào đó và hiển thị mã thực tế (có thể bạn đang tìm kiếm 'return Task.FromResult (value)') ... –