创建单元测试
ReSharper 提供了一种简单而有效的方法来为选定的类创建单元测试:它将创建一个测试类、测试方法,甚至在必要时创建一个新的测试项目。
如果 AI Assistant 已激活,您可以选择为创建的测试生成实际的测试逻辑。
为类创建单元测试
在编辑器中,将插入符号放置在您想为其创建单元测试的类上。
按 Control+T C ,或者打开 生成代码 Alt+Insert 菜单并选择 单元测试。
如果您的解决方案包含一个测试项目,其中有一个 与您的类名匹配 的测试类,ReSharper 将使用相应的 实时模板 在该类中添加一个新的测试方法。 请注意,在 2023.3 版本中,使用 AI 生成测试逻辑在这种情况下不受支持。 此问题将在下一个版本中修复。 作为一种解决方法,请重命名现有的测试类。
否则,将打开 创建单元测试 对话框:

在对话框中,指定测试应如何以及在哪里创建:
测试项目 :输入新项目的名称或从下拉选择器中选择现有的测试项目。
测试框架 :选择一个支持的单元测试框架(NUnit、xUnit 或 MSTest)。 在选择器中,您将看到目标项目或解决方案中已使用的框架版本——建议选择这些版本以保持一致性。 但是,您也可以选择所需框架的最新版本,它将从 NuGet 安装。 该框架将被引用到目标项目中,并且测试类将从与该框架对应的 文件模板 创建。
测试类名 :测试类的名称将根据您可以在 测试类命名约定 的 页面下配置的模式自动建议。 建议使用建议的名称,因为 ReSharper 将使用它在您 在测试之间导航 时链接类及其测试。
使用 AI 生成测试内容 :如果 AI Assistant 已激活,您可以选择为创建的测试生成实际的测试逻辑。
目标(高级) :使用此字段指定创建测试类的文件的自定义相对路径。
命名空间(高级) :使用此字段为创建的测试类指定自定义命名空间。
模板(高级) :使用此字段选择将用于创建测试类的 文件模板。
单击 确定 以创建测试。 如果需要,ReSharper 将创建一个新的测试项目和一个测试类,然后执行以下操作之一:
如果选择了 使用 AI 生成测试内容 ,ReSharper 将在测试类中填充一个或多个测试方法,以检查最初选择的类的逻辑。
请注意,生成的代码中可能会有一些未解析的符号引用,这是由于缺少项目引用或 using 指令导致的。 在大多数情况下,这些问题很容易解决:在高亮显示的引用上按 Alt+Enter 并选择 导入文件中缺失的引用。
否则,ReSharper 将部署 指定的测试方法的实时模板。 输入方法名称以完成模板会话,然后指定您的测试逻辑。
新测试类的文件模板
在创建新的测试类时,ReSharper 使用特定于目标测试框架的 文件模板。 默认情况下,ReSharper 为每个支持的框架提供一个模板:
如果需要,您可以修改这些模板或 为您的测试类创建更多模板。 为了确保您的自定义文件模板适合创建单元测试类,模板的 可用性 必须覆盖具有所需框架的测试项目:

新测试方法的实时模板
在生成测试方法时,ReSharper 部署特定于目标框架的 实时模板。 如果需要,您可以根据需要自定义每个模板。 为此,从菜单中选择 ,切换到 实时模板 选项卡,在 作用域 下选择 C# 或 VB.NET ,然后双击所需测试框架的 测试 模板。

用测试主体提及注释测试
在创建测试类时,ReSharper 可以为其添加一个特殊的属性,该属性将测试与其主体链接,并允许 在它们之间导航。 默认情况下,ReSharper 使用来自 JetBrains.Annotations 的 [TestSubject] 属性,但如果您希望为此目的使用其他属性,请相应地配置 测试类模板 ,然后在 ReSharper 选项 的 页面上指定此属性
Alt+R, O
。
同样在该 选项 页面上,您可以使用 使用测试主体提及注解 选择器选择 何时添加注释。
此功能在以下语言和技术中 受支持:
此处提供的说明和示例针对在 C# 中使用该功能。 有关其他语言的更多信息,请参阅 语言和框架 部分中的相应主题。