首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >F#:如何测试来自另一个项目的内部模块?

F#:如何测试来自另一个项目的内部模块?
EN

Stack Overflow用户
提问于 2020-08-19 06:35:35
回答 1查看 133关注 0票数 1

我遵循来自.Net文档的最佳.Net文档实践

  • 我为应用程序创建一个项目(控制台,而不是库)
  • 我为测试创建了一个项目(使用Expecto,但并不重要)

问题:我的一些应用程序模块没有通过internal关键字公开。因此,我不能在我的测试项目中导入这些模块。

=>如何对这些模块执行单元测试?我应该删除内部访问控制吗?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-19 10:45:24

要测试internal,可以使用InternalsVisibleTo测试私有类,可以链接测试项目中的文件(在“添加文件”对话框中,可以选择链接而不是打开)。

但是,正如已经评论过的,通常您只会测试公共接口。但偶尔你也会想要单独测试复杂的内部部件。例如,在.NET运行时库中,通常会这样做(有很多复杂的内部结构),而且它们经常使用链接方法。

由于私有对于类来说实际上意味着私有,而且您甚至无法通过扩展方法访问这些成员,所以您应该将这些成员作为公共成员放在他们自己的私有类中。这样,当您链接时,类是可访问的,成员也是可访问的,但是在生产版本中两者都是不可访问的。

谨慎地使用此技术,因为它会将您的私有细节绑定到测试系统,并且您将无法自由地更改内部实现。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63481258

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档