【问题标题】:What is the DynamicProxyGenAssembly2 assembly?什么是 DynamicProxyGenAssembly2 程序集?
【发布时间】:2013-03-02 13:15:12
【问题描述】:

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

我们以混淆的方式运行测试,这很有用,因为我们可以发现使用这种方法进行混淆的一些问题。由于 DynamicProxyGenAssembly2 程序集,我的组件没有被混淆。

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

请不要建议我们需要不加掩饰地运行我们的测试。在这一点上,这是没有选择的。

编辑

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

问候,Yggdrasil。

【问题讨论】:

    标签: unit-testing moq obfuscation


    【解决方案1】:

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

    至于 Expose Internals 方法,RhinoMocks 解决方案可以为您的 Moq 解决方案,只需极少的更改:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-07
      • 2020-03-29
      • 1970-01-01
      • 1970-01-01
      • 2011-05-25
      • 2012-04-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多