2017-08-18 7 views
0

konvertieren Dies sollte eine einfache Frage sein, aber es stampft mich. Ich versuche einen Scheintest einzurichten und habe ein Problem mit dem Rückgabetyp.Kann nicht von Aufgabe <internface> zu Aufgabe <IEnumerable <Interface>>

private IClassService classService; 
var mockClassService = new Mock<IClassService>(); 
mockClassService.Setup(c => c.GetClasses(It.IsAny<int>())) 
    .Returns(() => { return Task.FromResult<IClassInfo>(new ClassInfo()); }); 
classService = mockClassService.Object; 

Ich erhalte die Fehlermeldung „kann nicht von Aufgabe umwandeln < IClassInfo> zu Aufgabe < IEnumerable<IClassInfo >>“

Ich weiß, ich habe eine neue Liste von IClassInfo zurückzukehren, aber nicht zu wickeln scheint meine gehe herum wie. Kann mir jemand eine Richtung geben?

+1

'neue [] {neue ClassInfo()}' würde funktionieren als ein 'IEnumerable ' – juharr

Antwort

1

Gerade die return zu

ändern
return Task.FromResult<IEnumerable<IClassInfo>>(new[] {new ClassInfo()}); 

wenn Sie einen wollen ClassInfo in den Ergebnissen oder

return Task.FromResult<IEnumerable<IClassInfo>>(Enumerable.Empty<IClassInfo>()); 

für eine leere Sammlung. Sie könnten sogar null dort setzen, abhängig davon, was Ihr Test fordert, der wirklich wichtige Teil ist, den richtigen Typ für FromResult zu bekommen.

+0

Vielen Dank! Genau das habe ich gesucht. Ich weiß nicht, wie ich das vermisst habe. – GLCoder

Verwandte Themen