加速单元测试的创建
单元测试是必不可少的,但它们也非常冗长——每个测试夹具都需要一个正确装饰的类,每个测试用例都需要一个独立的方法。 此外,您可能会发现自己需要输入 Assert.Equals 太多次。
让我们看看是否可以通过使用 ReSharper 的 代码模板 来缩短创建单元测试所需的时间。 我们将从创建一个文件模板开始,这是 ReSharper 一次性创建整个文件的一种方式。 首先,让我们打开 菜单项。 我们会看到以下内容:

按下 新建模板
按钮,我们可以为测试夹具定义一个完整的模板。 您可以使用具体的类型和实现,但我们将在下面遵循通用的 NUnit 约定:

现在,如果我们想使用此模板创建一个单元测试夹具,可以右键单击一个项目并选择 。 我们会看到以下对话框:

我们可以在这里选择我们的“测试夹具”,并额外勾选“添加到快速列表”,这样模板就会被添加到所有 C# 项目的 快速访问列表 中,并且我们可以在 菜单中使用它,而无需选择 。
在对话框中单击 确定 会创建以下文件:
当然,属性可以根据您首选的单元测试框架进行自定义。
现在,让我们来看看测试方法。 通常,这些是没有参数的 void 方法(参数化测试是一个“特殊情况”),并附加了 测试 属性。
为此,我们切换到 实时模板 的 模板资源管理器窗口 选项卡。 再次,我们为方法定义了一个存根,其中 $NAME$ 是方法名称的变量, $END$ 表示模板展开后光标所在的位置。

现在,在我们的测试夹具中输入 test 并按下
标签页
会生成一个新的测试方法。
我们还可以为 Assert.IsEqual() 创建一个实时模板。 这也很简单:我们定义了一个包含两个 参数 的实时模板:

这两个都使用了 常量值 宏。 这不是必须的,但它美化了代码,并使模板在实际使用时更易于理解。
所以,这就是全部内容——通过 测试夹具 文件模板以及 test 和 ae 模板,您可以快速轻松地生成测试代码存根。 您可以随意将相同的方法用于其他与测试相关的元素,例如生成带有 setup/tear-down 方法的测试夹具,将文件生成用作实时模板而不是文件模板(请记住,您始终可以 将类移动到单独的文件中 ),为其他类型的断言创建实时模板,等等。