Capisco come simulare interfacce o chiamate di metodi virtuali. Ma framework come TypeMock possono prendere in giro qualsiasi cosa nel framework. Quali meccanismi .NET vengono utilizzati per fornire tali funzioni?Come deridere tutto?
risposta
Typemock isolatore per esempio utilizza il CLR profiler API per intercettare le chiamate .NET e cambiarli durante il runtime:
Typemock Isolator utilizza una orientata agli aspetti di progettazione programmazione che crea un mock aspetto. Internamente, utilizza l'API del profiler .NET Framework per monitorare l'esecuzione di un'applicazione . Quando un metodo viene caricato dal CLR, l'isolatore Typemock recupera l'IL e sostituisce con codice IL strumentale. Typemock Isolator non modifica il codice originale IL, inserisce semplicemente il nuovo codice che chiama il framework Typemock Isolator e restituisce valori simulati.
Mock Tutto è una delle funzionalità dei framework Mock. Finto tutto in breve è prendere in giro tutto in una classe, come
- oggetti dipendenti finto
- metodi non virtuali
- classi sigillate
- metodi statici
- classi statiche
- non- membri pubblici
- tipi non pubblici
JustMock & TypeMock entrambi forniscono questa funzionalità.
Si può effettivamente guardare il codice sorgente di alcuni framework open source finte quali Moq quadro, facile Mock, Rhino Mocks ecc
Disclosure: Si prega di notare che il collegamento fornito è il mio sito web
Grazie per la tua risposta. Potresti consigliare un buon articolo su questa API? –
[questo articolo] (http://msdn.microsoft.com/en-us/magazine/cc300553.aspx) è un buon inizio. –