Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 从另一个程序集对友元类进行单元测试_Vb.net_Unit Testing - Fatal编程技术网

Vb.net 从另一个程序集对友元类进行单元测试

Vb.net 从另一个程序集对友元类进行单元测试,vb.net,unit-testing,Vb.net,Unit Testing,我有一个包含两个程序集的解决方案,都在VB.Net中。一个程序集包含我的代码,主要包括Friend类;另一个程序集包含测试第一个程序集的代码。我依靠MSTest 如何对我的朋友类进行单元测试 我在一些教程和文档中看到C#具有,这表明了一种有趣的解决方法。如果没有更好的选择,我愿意遵循这个选择。然而,我感到非常惊讶的是,没有干净的方法来实现我认为非常基本的东西。您是正确的,在某个时间点上,内部visibletoAttribute仅在C中可用,在VB中不起作用。但是,您认为它今天在VB中仍然不起作用

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

如何对我的
朋友
类进行单元测试


我在一些教程和文档中看到C#具有
,这表明了一种有趣的解决方法。如果没有更好的选择,我愿意遵循这个选择。然而,我感到非常惊讶的是,没有干净的方法来实现我认为非常基本的东西。

您是正确的,在某个时间点上,
内部visibletoAttribute
仅在C中可用,在VB中不起作用。但是,您认为它今天在VB中仍然不起作用是错误的。该属性在VB中不起作用的时间早已过去。除非您使用的是非常旧的工具,否则该属性在VB中会起作用,就像在C#中一样


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

我从未使用过它,但据我所知,该属性在VB中工作。有关更多信息,请参见。。我的目标框架设置为4.0,因此应该可以工作。但是,VS编译器无法识别该属性。不过谢谢你的提示,现在我有一个新的线索要调查!如果您的目标是.NET Framework,则需要添加对
System.Runtime.dll
的引用。不管您的框架是什么,您都需要完全限定它,或者导入
System.Runtime.CompilerServices
名称空间。实际上,根据MS文档。对于属性类仍然有点困惑,不知道它们在名称空间方面与常规类一样工作。谢谢,你搞定了@Ama-属性是常规类,您可以创建自己的类。NET Framework 4.0?-这是一个过时的框架,Microsoft不再支持它。