Ich versuche, ein Repository-Methode zu verspotten, wie dieMoq ReturnsAsync() mit Parameter
public async Task<WhitelistItem> GetByTypeValue(WhitelistType type, string value)
Moq ReturnsAsync verwendet wird, wie folgt aus:
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();
});
aber ich erhalte diesen Fehler in der line“... ReturnsAsync ((WhitelistType Typ ...):
nicht Lambda-Ausdruck konvertieren kann 'Model.WhitelistItem' weil es eingeben ist kein Typ Delegierter
WhitelistType ein Enum wie das ist:
public enum WhitelistType
{
UserName,
PostalCode
}
ich nach Stunden gesucht und gefunden hatte keine Antwort auf mein Problem.
Irgendwelche Hinweise?
sieht aus wie Sie den Typ für die Lambda-Delegierten Argumente (WhitelistType Typ, String-Wert) angeben müssen – BozoJoe
ist es möglich, die Parameter zurück in das Verfahren als übergeben asynchrone Rückgabetyp, also Instanz in ---> Task aus? (selbe Instanz thou) –
Choco
@Choco nicht sicher, was Sie versuchen zu tun - in Betracht ziehen, es stattdessen als eine Frage zu stellen und tatsächlichen Code anzuzeigen (vielleicht suchen Sie nach 'return Task.FromResult (value)') ... –