2013-03-14 11 views
8

Uso il Moq per i miei test di unità. Per testare le interfacce interne devo dichiarare l'attributo InternalsVisibleTo all'assembly DynamicProxyGenAssembly2.Che cos'è l'assieme DynamicProxyGenAssembly2?

Eseguiamo i nostri test offuscati, il che è utile perché abbiamo riscontrato alcuni problemi con l'offuscamento con questo approccio. Causato dall'assembly DynamicProxyGenAssembly2, il mio componente non viene offuscato.

Pertanto, è necessario conoscere l'assembly DynamicProxyGenAssembly2? Non sono riuscito a trovarlo da nessuna parte sul mio disco. È compilato nel moq.dll o è generato in fase di runtime? Forse se sapessi cosa questa assemblea, io troveremo un modo per risolvere il mio problema. Qualcuno ha riscontrato lo stesso problema?

Non suggerire di eseguire i test non analizzati. A questo punto questa non è un'opzione.

EDIT

La DynamicProxyGenAssembly2 viene generato in fase di esecuzione. Per soddisfare il Dotfuscator è stata messa una dll vuota accanto a Moq. Inoltre abbiamo dovuto modificare la DLL di Castle.Core per utilizzare la tua chiave pubblica. Gli ultimi problemi che abbiamo avuto è stato risposto here. Con questo potremmo eseguire tutti i nostri test offuscati senza problemi.

Saluti, Yggdrasil.

risposta

13

DynamicProxyGenAssembly2 è un assembly temporaneo creato da sistemi di simulazione che utilizzano CastleProxy come Moq o NSubsitute. Viene generato quando la simulazione è necessaria e viene eliminata al termine dei test.

Per quanto riguarda il metodo di Expose Internals quanta ce ne sia una soluzione RhinoMocks che avrebbe funzionato per il vostro Moq uno con modifiche minime:

http://ayende.com/Wiki/Rhino+Mocks+-+Internal+Methods.ashx?AspxAutoDetectCookieSupport=1