Ho appena iniziato a utilizzare AutoFixture e sto recuperando le basi (da quello che vedo c'è molto di più) ma sto avendo un problema e non sono 100 % sicuro di quale sia la migliore pratica per cose come questa.Compilazione di una raccolta Proprietà di un faro con autofocus
Sto testando un controller e parte del processo è che l'azione può restituire una delle due viste.
- Se una categoria ha dei figli - mostra la vista Elenco categorie
- Se una categoria non ha figli mostrare il prodotto messa in vendita di vista
Così sto pensando di alcuni test per quel comportamento, ma i dati del dispositivo restituiti sarebbero diversi. Uno restituirebbe un conteggio di 0, l'altro un conteggio maggiore di zero, quindi vorrei che l'apparecchio mi aiutasse con quello.
Mi sono guardato intorno, e forse dovevo creare una personalizzazione di qualche tipo, ma speravo che l'API di base potesse aiutarmi qui. Ho provato questo:
var category = _fixture.Build<Category>()
.Do(x => x.SubCategories = _fixture.CreateMany<Category>(3).ToList())
.Create();
_fakeCategoryService
.Setup(x => x.GetById(id))
.Returns(category);
Questo compila e test eseguiti (e non riescono), ma le sottocategorie ha sempre un conteggio di 0, quindi sto pensando il mio invito a creare molti in Do è tutto sbagliato (kinda sembra sbagliato ma non sono ancora sicuro di cosa debba essere sostituito con).
UPDATE: dovrebbe leggere il cheat sheet un po 'meglio!
var category = _fixture.Build<Category>()
.With(x => x.SubCategories, _fixture.CreateMany<Category>(3).ToList())
.Create();
questo funziona, se c'è un modo migliore per favore fatemelo sapere.
Grazie per le informazioni aggiunte, molto apprezzato! – Modika