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

时间:2014-08-18 16:18:47

标签: c# mstest

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

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

1 个答案:

答案 0 :(得分:5)

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

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

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

  4.   

(可通过以下搜索找到更多历史记录:mstest why private accessors depricated site:blogs.msdn.com)。

对于问题的第二部分 - 通常您不需要对私有方法进行单元测试。如果您确实需要公开此类测试方法 - 请考虑标记internal并使用" friend" (InternalsVisibleToAttribute)适用于您的案件。