Come prendere in giro tutto?
Domanda
I capire come deridere interfacce o chiamate di metodo virtuale. Ma framework come TypeMock possono deridere tutto nel quadro. Quali meccanismi .NET sono utilizzati per fornire tali funzioni?
Soluzione
Typemock isolatore per esempio utilizza il CLR profiler API per intercettare. chiamate NET e cambiarle durante il runtime:
Typemock Isolator utilizza un progettazione programmazione orientata agli aspetti che crea un aspetto finto. Internamente, utilizza il .NET Framework profiler API per monitorare un esecuzione dell'applicazione. Quando un metodo viene caricato dal CLR, Typemock Isolator recupera l'IL e sostituisce con il codice IL strumentato. Typemock Isolator non cambia l'originale codice IL, inserisce semplicemente il nuovo codice che chiama il Typemock Isolator quadro e ritorna valori deriso.
Altri suggerimenti
Mock Tutto è una delle caratteristiche per le strutture Mock. Mock tutto in breve è a tutto finto in una classe, come ad esempio
- oggetti dipendenti finto
- metodi non-virtuali
- classi sigillate
- metodi statici
- classi statiche
- i membri non 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 etc.
Disclosure: noti prego che il collegamento fornito è il mio sito web