什么是DynamicProxyGenAssembly2程序集?

问题描述 投票:11回答:1

我使用Moq进行单元测试。要测试内部接口,我必须将InternalsVisibleTo属性声明为DynamicProxyGenAssembly2程序集。

我们运行我们的测试模糊,这很有用,因为我们可以通过这种方法找到一些混淆问题。由DynamicProxyGenAssembly2程序集引起,我的组件不会被混淆。

因此,我需要知道DynamicProxyGenAssembly2程序集是什么?我在磁盘上的任何地方都找不到它。它是编译成moq.dll还是在运行时生成?也许如果我知道这个集会我会找到解决问题的方法。有人遇到过同样的问题吗?

请不要建议我们需要进行未经过混淆的测试。在这一点上,这是没有选择。

编辑

DynamicProxyGenAssembly2在运行时生成。为了满足Dotfuscator,在Moq旁边放了一个空的dll。此外,我们必须修改Castle.Core dll以使用您的公钥。我们遇到的最后一个问题是here。有了这个,我们可以毫无问题地运行我们所有的测试。

此致,Yggdrasil。

unit-testing moq obfuscation
1个回答
17
投票

DynamicProxyGenAssembly2是一个临时程序集,由使用CastleProxy的模拟系统构建,如Moq或NSubsitute。它是在需要模拟时生成的,并在测试完成后进行处理。

至于Expose Internals方法,有一个RhinoMocks解决方案适用于你的Moq,只需要很小的改动:

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

© www.soinside.com 2019 - 2024. All rights reserved.