【问题标题】:.NET assemblies spanning multiple files and unit testing.NET 程序集跨越多个文件和单元测试
【发布时间】:2009-02-06 13:27:55
【问题描述】:

谁能告诉我一些关于跨多个文件的 .NET 程序集的信息?

我在 MSDN (here) 上发现了这句话:

虽然技术上可以创建跨越 多个文件,您不太可能在大多数情况下使用此技术 情况。

我问是因为我在单独的项目中有业务逻辑和单元测试,而且我想测试一些内部类(单元测试无法访问这些类) - 所以我想我会尝试将两者合并为一个程序集。

【问题讨论】:

    标签: .net unit-testing assemblies


    【解决方案1】:

    您可以将两个程序集加为好友。然后一个人可以看到另一个人的“内部”。还是看不到私密。

    MSDN - http://msdn.microsoft.com/en-us/library/0tke9fxk(VS.80).aspx

    【讨论】:

      【解决方案2】:

      如果您想测试内部方法,那么InternalsVisibleTo 是适合您的属性。事实上,测试内部类/方法几乎是我用过它的唯一目的。

      (基本上你将它应用于生产程序集,指定测试程序集 - 然后测试程序集可以访问内部成员。)

      【讨论】:

        【解决方案3】:

        我会说在下面的 2 个选项之间做出决定

        • 如果内部类对父程序集来说非常简单和私有,请跳过测试。执行这些内部类的公共类的测试应该涵盖它们。
        • 如果内部类相当大并且确实需要自己的测试。将访问控制的职责拆分给另一个类。公开内部类并像往常一样编写测试。将内部类不直接在父程序集外部实例化,或者将其他类用作访问“内部类”的单点,使其成为一个已知的团队约定。

        恕我直言,只有当您真的担心不公开内部类型 + 绝对必须测试它们时,才选择 Option2。 Option1 允许您随时更改内部实现/类,而不会破坏任何测试。不要使用晦涩的方法将程序集拆分到多个物理文件进行测试。

        【讨论】:

          【解决方案4】:

          应该通过测试您的公共方法来测试内部类。

          【讨论】:

          • 我想在内部类中测试一个算法。这应该从外面看不到。
          猜你喜欢
          • 2014-09-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-09-09
          • 1970-01-01
          • 2012-07-12
          • 2014-03-14
          • 2014-08-17
          相关资源
          最近更新 更多