3

我正在研究我的第一个“真正的”F# 程序集,并试图把事情做对。

我也设法让 xUnit 工作,但目前我的测试模块在同一个程序集中。这让我有点困扰,因为这意味着我将发布一个程序集,其中近一半的代码(和 80% 的 API)是测试方法。

这样做的“正确”方法是什么?如果我将测试放在另一个程序集中,我认为这意味着我必须公开我宁愿保密的内部结构。

我知道在 C# 中有一个用于测试的友元机制(如果这是正确的术语),在 F# 中是否有等价物?

或者,任何人都可以指出一个“正确”完成的示例项目吗?

4

1 回答 1

6

您可以使用 InternalsVisibleTo-Attribute 将您的内部组件公开给其他程序集。

http://msdn.microsoft.com/en-us/library/system.runtime.compilerservices.internalsvisibletoattribute(VS.100).aspx

编辑

如果您的程序集已签名,您还需要对 Friend 程序集进行签名,并在 InternalsVisibleTo 属性中提供公钥:

[<assembly: InternalsVisibleTo("ProcessorTests, PublicKey=0024000004800...)")>]
于 2010-03-08T08:22:29.830 回答