Ich verwende Moq für meine Komponententests. Um interne Schnittstellen zu testen, muss ich das InternalsVisibleTo-Attribut zur DynamicProxyGenAssembly2-Assembly deklarieren.
Wir führen unsere Tests verschleiert durch, was nützlich ist, weil wir bei diesem Ansatz einige Probleme mit der Verschleierung finden konnten. Durch die DynamicProxyGenAssembly2-Assembly verursacht, wird meine Komponente nicht verschleiert.
Daher muss ich wissen, was die DynamicProxyGenAssembly2 Assembly ist? Ich konnte es nirgends auf meiner Festplatte finden. Ist es in die moq.dll kompiliert oder wird es zur Laufzeit generiert? Vielleicht, wenn ich weiß, was diese Versammlung ist, könnten wir einen Weg finden, um mein Problem zu umgehen. Ist jemand auf dasselbe Problem gestoßen?
Bitte schlagen Sie nicht vor, dass wir unsere Tests ungehindert durchführen müssen. An diesem Punkt ist dies keine Option.
BEARBEITEN
Die DynamicProxyGenAssembly2 wird zur Laufzeit generiert. Um den Dotfuscator zu befriedigen, muss eine leere DLL neben Moq stehen. Außerdem mussten wir die Castle.Core-DLL ändern, um Ihren öffentlichen Schlüssel zu verwenden. Die letzten Probleme, die wir hatten, wurden beantwortet hier
Grüße, Yggdrasil.
DynamicProxyGenAssembly2 ist eine temporäre Assembly, die von Systemen erstellt wurde, die CastleProxy wie Moq oder NSubsute verwenden. Es wird generiert, wenn der Mock nach Abschluss der Tests benötigt und entsorgt wird.
Wie bei der Expose Internals-Methode gibt es eine RhinoMocks-Lösung, die mit minimalen Änderungen für Ihren Moq One funktioniert:
Tags und Links unit-testing moq obfuscation