对另一个程序集中的朋友班进行单元测试

时间:2019-05-03 18:34:51

标签: vb.net unit-testing

我有一个包含两个程序集的解决方案,都在VB.Net中。一个程序集包含我的代码,主要包括Friend类;另一个程序集包含专用于对第一个程序集进行单元测试的代码。我依靠MSTest。

如何对我的Friend类进行单元测试?

我在几本教程和文档中都看到C#具有<Assembly(): InternalsVisibleTo("AssemblyName")>,但是我知道这不适用于VB。

在搜索SO时,我仅发现one match,这建议了一个有趣的解决方法。如果没有更好的选择,我愿意遵循这种选择。但是,令我惊讶的是,没有一种干净的方法来实现我虽然还很基础的东西。

1 个答案:

答案 0 :(得分:1)

您是正确的,在某个时间点InternalsVisibleToAttribute仅在C#中可用,而在VB中不起作用。但是,您认为它今天在VB中仍然无法使用是不正确的。该属性在VB中不起作用的时间早已过去。除非您使用的工具过旧,否则该属性将在VB中起作用,就像在C#中一样。

如果它对您不起作用,几乎可以肯定是出于不同的原因。如果编译失败,则说明该类型不存在,这是因为您未引用必要的程序集,或者未导入其名称空间。如果您的项目针对.NET Core或.NET Standard,则无需引用任何其他程序集,但是如果针对.NET Framework,则需要添加对System.Runtime.dll的引用( (如果尚未被引用)。然后,无论您要针对哪个框架,都需要完全限定类名,或者需要导入其名称空间,即System.Runtime.CompilerServices