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

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

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

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

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

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

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

对于问题的第二部分 – 通常您不需要对私有方法进行unit testing。 如果你真的觉得需要公开这样的测试方法 – 考虑是否标记internal和使用“朋友”( InternalsVisibleToAttribute )将适用于您的情况。