【问题标题】:.Net - Mocking and Obfuscation.Net - 模拟和混淆
【发布时间】:2013-03-11 12:55:07
【问题描述】:

以下问题: 我们在单元测试中使用模拟库 Moq。因此,我们对 DynamicProxyGenAssembly2 有一个 InternalsVisibleTo 属性。此外,我们混淆了我们的程序集。问题来了 - 由于 DynamicProxyGenAssembly2,我们所有的内部接口和类都不再被混淆。

据我所知,大多数模拟库都使用这个 DynamicProxyGenAssembly2。即使他们没有,我也不认为有模拟库可以在没有 InternalsVisibleTo 的情况下模拟内部接口。

你们中有人遇到过同样的问题,你们是如何解决的。我想使用模拟和混淆 - 这可能吗?

问候,Yggdrasil。

编辑

如果模拟程序集是开源的并且不中继再次需要访问这些接口的第三方程序集,这是可能的。我们可以在构建过程中包含模拟程序集,它会与我们的程序集一起混淆。有这样的开源模拟系统吗?

【问题讨论】:

    标签: .net build mocking moq obfuscation


    【解决方案1】:

    也许您可以拥有 2 种构建配置,一种用于单元测试的未混淆配置,另一种具有所有安全功能的发布配置。只有第一个配置需要 InteralsVisibleTo 属性。

    【讨论】:

    • 正是我的想法。为什么要在测试之前混淆代码?这太疯狂了。
    • 我们故意这样做是为了查看单元测试是否也适用于混淆程序集。
    • 我认为这是不可能的。这就像校对一本加密的书。它可以是可读的或加密的,但不能两者兼而有之。
    • 如果模拟程序集是开源的并且不中继再次需要访问这些接口的第三方程序集,这是可能的。我们可以在构建过程中包含模拟程序集,它会与我们的程序集一起混淆。
    猜你喜欢
    • 2018-09-26
    • 2021-12-31
    • 1970-01-01
    • 2022-06-16
    • 1970-01-01
    • 2011-03-22
    • 1970-01-01
    • 2010-11-19
    • 2012-08-22
    相关资源
    最近更新 更多