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

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

新测试方法的实时模板
生成测试方法时,JetBrains Rider 部署特定于目标框架的 实时模板。 如果需要,您可以根据需要自定义每个模板。 为此,请按 Ctrl+Alt+S 打开设置并选择 编辑器 | 实时模板 | C# ,然后编辑所需测试框架的 test 模板。

用测试主体提及注释测试
创建测试类时,JetBrains Rider 可以使用特殊属性对其进行注释,该属性将测试与其主体链接,并允许 在它们之间导航。 默认情况下,JetBrains Rider 使用来自 JetBrains.Annotations 的 [TestSubject] 属性,但如果您想为此目的使用其他属性,请相应地配置 测试类模板 ,然后在 JetBrains Rider 设置 的 页面上指定此属性 Ctrl+Alt+S。
同样在该 设置 页面上,您可以使用 使用测试主体提及注解 选择器选择 何时添加注释。