如何:测试私有方法

更新:2007 年 11 月

使用单元测试可以对公共方法和私有方法进行测试。与公共方法类似,在从要测试的代码生成测试时,将自动创建私有方法的单元测试。

尽管可以手动编写单元测试代码以测试任何方法,但这需要对反射的复杂性有较好的理解,因此为私有方法编写测试代码比为公共方法编写测试代码的难度更大。因此,生成私有方法的测试比手动编写其测试代码更为方便。

生成私有方法的单元测试时,Visual Studio 会创建一个专用访问器。专用访问器是一个程序集,通过该程序集,测试可以从该方法的类的外部访问私有方法。有关更多信息,请参见使用专用访问器

说明:

除私有方法外,您还可以使用专用访问器来测试私有属性和字段。但是,您无法使用专用访问器来测试以下项的私有版本:事件、委托、匿名方法以及用 CompilerGeneratedAttribute 属性标记的成员。

InternalsVisibleTo 或专用访问器:使用哪一个?

使用专用访问器程序集既可以访问私有成员也可以访问内部成员。如果您的测试代码具有内部成员,但没有私有成员,则最好在您的测试代码中使用 InternalVisibleTo 属性,而不用再创建专用访问器程序集。但如果您的代码同时具有要测试的私有成员和内部成员,请使用专用访问器,因为它提供了对这两种成员的访问。有关更多信息,请参见使用专用访问器

生成私有方法的单元测试

  1. 打开一个包含某私有方法的源代码文件。

  2. 右击该私有方法,然后选择“创建单元测试”。

    随即出现“创建单元测试”对话框。在可视树结构中,仅该私有方法的复选框为选中状态。

  3. (可选)在“创建单元测试”对话框中,可以更改“输出项目”。还可以单击“设置”重新配置生成单元测试的方式。

  4. 单击“确定”。

    将生成用于访问私有方法的代码,生成测试项目,以及创建或更新专用访问器程序集。

    如果在此之前测试项目没有任何单元测试,则将创建一个源代码文件以保存单元测试。与包含私有访问器的文件类似,包含单元测试的文件在解决方案资源管理器中的测试项目中也可见。

  5. 打开包含单元测试的文件并滚动到该私有方法的测试。找到使用 // TODO: 注释标记的语句,并按照注释中的指示完成这些语句。这有助于测试生成更精确的结果。有关更多信息,请参见如何:创作单元测试

    该私有方法的单元测试现在就可以运行。有关更多信息,请参见如何:运行选定的测试

请参见

任务

如何:创作单元测试

演练:创建并运行单元测试

概念

使用专用访问器

使用 Publicize 来创建专用访问器

设置 InternalsVisibleTo 属性

其他资源

如何:生成单元测试