2010-09-09 5 views
7

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

8

Typemock isolatore per esempio utilizza il CLR profiler API per intercettare le chiamate .NET e cambiarli durante il runtime:

Quote:

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.

+0

Grazie per la tua risposta. Potresti consigliare un buon articolo su questa API? –

+0

[questo articolo] (http://msdn.microsoft.com/en-us/magazine/cc300553.aspx) è un buon inizio. –

0

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