c# - 为了单元测试更改方法可见性是否可以?

标签 c# unit-testing

很多时候我发现自己在将方法设为私有(private)以防止有人在没有意义的上下文中调用它(或者会搞砸所涉及对象的内部状态),或者将方法设为公开(或通常是内部的)以便将其暴露给单元测试程序集。我只是想知道 Stack Overflow 社区是如何看待这个困境的?

所以我想真正的问题是,专注于可测试性更好还是专注于维护适当的封装更好?

最近我一直倾向于可测试性,因为大部分代码只会被一小部分开发人员使用,但我想我会看看其他人的想法?

最佳答案

不能更改客户或用户可以看到的方法的可见性。这样做很丑陋,是一种 hack,暴露了任何愚蠢的用户都可以尝试使用并破坏您的应用程序的方法……这是您不需要的责任。

您使用的是 C# 是吗?查看internals visible to属性类。 您可以将可测试方法声明为内部方法,并允许您的单元测试程序集访问您的内部方法。

关于c# - 为了单元测试更改方法可见性是否可以?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2330627/

相关文章:

c# - 与 Math.Round() 不一致

c# - 在哪里可以找到 x64 版本的 Office Interop 程序集?

java - 使用 UISpec4J 或 FEST 的优缺点

unit-testing - 在 Go 中模拟接收函数

java - 什么是测试预言机,它有什么用?

c# - 在 EF 6 中的运行时更改连接字符串

c# - 为什么看起来这个字符串是按值内联存储在显式布局类或结构中的?

c# - 扩展Datarow扩展方法

java - 从 Spring boot 单元测试中排除 Spring Cloud Config Server

java - 单元测试,我应该修改方法参数吗