如何将内部导出到F#中的测试项目?

Ada*_*edy 5 .net c# f#

在C#中,您可以使用InternalsVisibleToAssemblyInfo.c中的属性创建一个测试项目访问项目内部的权限,这样您就可以对项目中不希望公开的部分进行单元测试.

[assembly: InternalsVisibleTo("MyTestProject")]
Run Code Online (Sandbox Code Playgroud)

我无法在F#中发现等效的解决方案,或者甚至发现如何将属性添加到程序集中.是否有解决方案(或等效的解决方法),如果是,它是什么?

Ada*_*edy 7

Jeff Mercado获得汇编属性的解决方案(我之前从未见过)导致了我的问题的以下解决方案.谢谢杰夫!

module AssemblyInfo

open System.Runtime.CompilerServices

[<assembly: InternalsVisibleTo("MyTestProject")>]
do()
Run Code Online (Sandbox Code Playgroud)


Tom*_*rdt 5

把它放到你的 fsproj 文件中:

 <ItemGroup>
   <AssemblyAttribute Include="System.Runtime.CompilerServices.InternalsVisibleTo">
     <_Parameter1>$(AssemblyName).Tests</_Parameter1>
   </AssemblyAttribute>
   <AssemblyAttribute Include="System.Runtime.CompilerServices.InternalsVisibleTo">
     <_Parameter1>DynamicProxyGenAssembly2</_Parameter1>
   </AssemblyAttribute>
 </ItemGroup>
Run Code Online (Sandbox Code Playgroud)

请注意,仅在使用 Moq 时才需要 DynamicProxyGenAssembly2 条目。