在我的功能文件中,我有 1 个场景大纲,其中包含两个创建两个团队的示例。这些团队是其他两种方案的先决条件:一种是删除空团队,一种是向团队添加用户。显然,我要求团队创建在其他两个场景之前运行。我以 01(用于创建团队)/02(删除团队)/03(添加用户)开头命名它们。现在,当我运行
dotnet test
时,它执行得很好。但是当我使用 VS Test Explorer 时,测试会像这样显示在树中:
_02RemoveTeam
_03AddUser
+_01AddTeam
|- AddTeam("team1")
|- AddTeam("team2")
您可以在最后测试来自场景大纲的用例。问题很简单:我该如何防止这种情况发生?我只想按字母顺序执行我的测试。
或者,我正在考虑使用 Gherkin 的 Background 关键字,但据我所知,Background 无法参数化,因此我无法创建两个具有不同名称的团队。
这里的根本问题是测试顺序很重要。相反,向“添加团队成员”和“删除团队”场景添加步骤来创建团队。你不需要对此进行详细说明。根据您的场景,该步骤可以像
Given a team was created
一样简单,其中步骤定义使用假数据或测试数据来创建团队所需的所有详细信息。当信息不相关时,无需在场景中指定事物。
根据我的经验,解决这个问题意味着做两件事:
Given
步骤以包含所有先驱用例。