Ho un oggetto complesso che sto cercando di simulare.FakeItEasy tipi di tipi nidificati profondi
interface IContext
{
User User { get; }
}
A.CallTo(
() => _fakeContext.User.Subscription.Attributes)
.Returns(new List<Attribute>());
ma ho l'eccezione seguente:
The current proxy generator can not intercept the specified method for the following reasons: - Non virtual methods can not be intercepted
Tutti i tipi nidificati sono proprietà, e sono semplici tipi anemici con get; set;
modificatori di proprietà. E quando guardo il debugger, sono tutti falsi.
C'è un modo per impostare l'ultima proprietà della catena ed evitare l'installazione di tutti quelli precedenti?
sono la proprieta su 'user' virtuale? In tal caso potresti pubblicare il codice sorgente per 'Utente'? – Xharze
No. Né l'Utente né l'Abbonamento sono virtuali. È il codice dall'assemblaggio compilato. –
FakeItEasy non può prendere in giro metodi non virtuali, quindi è necessario risolverlo per costruire l'oggetto da solo. Qualcosa come la risposta sotto farebbe il trucco. – Xharze