图 3. Generate test(s) 方法
因此,要开始代码生成过程,请执行以下步骤:
" 右键单击该类名 BankAccount 并单击 Create Tests。
现在,应该为您提供 Generate Unit Tests 对话框(如图 4 所示)。该对话框及其组件提供对该过程中生成的代码进行自定义的功能。让我们看一下所有这些元素。

图 4. 生成 Unit Tests 对话框
Current selection: 树视图允许导航自定义类及其元素。VS 2005 使用反射填充该树视图,并在右键单击以及单击 Create Tests 的位置自动选择组件。图 3 中,由于我在类级别进行了此操作,因此该对话框自动选择用于代码生成的所有类元素。如果选择在单个级别(即,构造函数、属性或方法)进行生成,则只选择那些元素。
Filter 选项(位于右上角)提供修改树视图(图 5)中所示结果的功能,包括显示非公共项、基类型以及“只属于我的代码”。如果使用的是大型解决方案,或者感觉显示私有的内部结构会弄乱选择窗口,那么这对您很有益处。

图 5. 筛选选择结果
下一个是 Output project 对话框(位于 Current selection: 树视图下)。该列表框允许您针对生成的测试装置选择目的项目(图 6)。如果您的解决方案包含以前创建的测试项目,则将包含该测试项目以供选择。由于这是我们首次访问该对话框,因此可以选择 Create a new … Test Project 选项。

图 6. 输出项目选择
要继续我们的过程,请执行以下操作:
" 基于您选择的语言选择 Create a new {0} Test Project。
最后,该对话框提供通过 Settings 按钮(位于左下角)自定义代码生成过程的功能。单击该按钮将加载 Test Generation Settings 对话框,如图 7 所示。

图 7. Test Generation Settings 对话框
该对话框允许您进行以下更改:
" 更改命名约定,它们用于生成针对文件、类(测试装置)和方法(测试)的名称。
" 打开/关闭使所有测试结果在默认情况下为 Inconclusive 的功能。选择该选项将在每个生成的 Test() 方法中包含以下占位符语句。
Assert.Inconclusive("TODO: Implement code to verify target");
" 打开/关闭启用生成警告的功能 — 即,如果在代码生成过程中出现任何警告,都要进行报告。
" 在全局范围内限制所有类型。该设置通知代码生成引擎将一个全局限定符(在 Microsoft Visual C# 2005 中是 global::)添加到变量声明中。当在多个命名空间中具有名称相似的对象时,请使用该设置。否则,代码生成引擎将创建逻辑来创建该对象,但是编译器不能确定创建哪个类,因此会产生错误。
" 启用/禁用针对已具有测试的项生成测试的功能。下面我们将讨论关于后续代码生成尝试的主题。
" 启用/禁用文档注释。这允许您在使用每个 Test() 方法时禁用 XML 文档的创建
要完成我们的配置并生成单元测试代码(以及更多),请执行以下操作:
1.
单击 OK 按钮开始代码生成过程。
2.
输入名称 BankAccountDemo.Business.Test 作为新项目名,并单击 Create 按钮完成该过程。
VS 2005 将显示一个进度栏,提供代码生成过程中的状态。该过程将在几秒钟内完成,您可以看到一个名为 BankAccountTest.cs 的类。

