Sto prendendo in giro alcuni oggetti usando Moq e alcuni di essi possono avere oggetti di richiesta di raccolta parametri abbastanza lunghi passati come argomenti.È possibile memorizzare un oggetto di confronto "It" come variabile, invece di definirlo in linea? (Moq)
Per facilità di riutilizzo e stile, mi piacerebbe essere in grado di memorizzare queste richieste, con argomenti specifici, da utilizzare nella configurazione di simulazione. Per esempio:
mockedObject
.Setup(mo =>
mo.GetBobbins(It.Is<GetBobbinsRequest>
(r.Parameter1 == value1 && [...] & r.ParameterN == valueN))
.Returns(someBobbins);
diventa:
var request = It.Is<GetBobbinsRequest>
(r.Parameter1 == value1 && [...] & r.ParameterN == valueN);
mockedObject
.Setup(mo => mo.GetBobbins(request))
.Returns(someBobbins);
Ma questo non sembra funzionare. Ho anche provato:
Func<GetBobbinsRequest> request =() => It.Is<GetBobbinsRequest>
(r.Parameter1 == value1 && [...] & r.ParameterN == valueN);
mockedObject
.Setup(mo => mo.GetBobbins(request()))
.Returns(someBobbins);
Ma nessuna gioia neanche lì. C'è un modo per salvare un oggetto stile It
come variabile? O mi manca qualche altro modo ovvio per gestirlo?