为什么不推荐使用私人访问者?

use*_*598 4 c# mstest

它曾经是我们从其他人那里选择MSTest的首要原因,我们可以访问并测试私有方法.现在,在Visual Studio 2012中不推荐使用私有访问器.有谁知道微软为什么做出这样的决定?是因为测试私有方法不是一个好习惯吗?

另外,如果我仍然需要对我的私有方法进行单元测试,那么我怎样才能在VS 2012及更高版本中执行此操作?

Ale*_*kov 5

根据VS团队文章Generation of Private Accessors ...此功能在2010年被弃用,原因如下:

  1. 缺乏资源和时间:此版本的重点是改善手动测试人员的体验,因此降低了代码生成和公布功能的优先级.我们使用的宣传功能还有其他问题尚未解决.

  2. 语言团队的新功能:由于语言团队已对其项目类型和语言进行了修改,因此我们无法回应他们所做的更改,也无法使用他们引入的新功能.

(更多历史记录可以通过以下搜索找到:mstest为什么私人访问者会删除网站:blogs.msdn.com).

对于问题的第二部分 - 通常您不需要对私有方法进行单元测试.如果您确实需要公开这些测试方法 - 请考虑标记internal和使用"friend"(InternalsVisibleToAttribute)是否适合您的情况.

  • @ user3918598 - "只是后勤"可能是太强大的阅读方式 - 可能(纯粹是我的推测,我为微软工作,但离VS团队很远)这是因为该功能的一般实用性/需求低于实施成本/日臻完善.考虑阅读[减去100分](http://blogs.msdn.com/b/ericgu/archive/2004/01/12/57985.aspx)关于Microsoft使用的一种方法的文章,以选择要实现/改进的功能. (3认同)