.NET程序集跨越多个文件和单元测试

时间:2009-02-06 13:27:55

标签: .net unit-testing assemblies

有人能指出一些关于跨多个文件的.NET程序集的信息吗?

我在MSDN上发现了这条评论(here):

  

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

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

4 个答案:

答案 0 :(得分:3)

您可以将两个组件放在一起。然后人们可以看到另一个中的“内部”。仍然看不到私人。

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

答案 1 :(得分:3)

如果您想测试内部方法,那么InternalsVisibleTo就是您的属性。实际上,测试内部类/方法实际上是我用过它的唯一方法。

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

答案 2 :(得分:1)

我会说下面两个选项之间的决定

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

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

答案 3 :(得分:0)

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

相关问题