簡體   English   中英

如何將內部構件導出到 F# 中的測試項目?

[英]How do I export internals to a test project in F#?

在 C# 中,您可以創建使用 AssemblyInfo.c 中的InternalsVisibleTo屬性來授予測試項目訪問項目內部的權限,這樣您就可以對您不想公開的項目部分進行單元測試。

[assembly: InternalsVisibleTo("MyTestProject")]

我無法在 F# 中找到等效的解決方案,甚至根本無法找到如何向程序集添加屬性。 是否有解決方案(或等效的解決方法),如果有,它是什么?

Jeff Mercado 獲取程序集屬性(我以前從未見過)的解決方案為我的問題提供了以下解決方案。 謝謝傑夫!

module AssemblyInfo

open System.Runtime.CompilerServices

[<assembly: InternalsVisibleTo("MyTestProject")>]
do()

把它放到你的 fsproj 文件中:

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

請注意,僅在使用 Moq 時才需要 DynamicProxyGenAssembly2 條目。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM