【发布时间】:2020-01-29 23:29:39
【问题描述】:
在实施剩余的测试用例之前,我进行了一些数据设置。我已将执行测试用例之前需要执行的所有数据设置分组到一个功能文件中。
如何确保在执行 goDog 框架中的任何其他功能文件之前执行此数据设置功能文件?
【问题讨论】:
在实施剩余的测试用例之前,我进行了一些数据设置。我已将执行测试用例之前需要执行的所有数据设置分组到一个功能文件中。
如何确保在执行 goDog 框架中的任何其他功能文件之前执行此数据设置功能文件?
【问题讨论】:
据我了解,您正在寻找一种在运行功能/场景之前运行一些设置说明的方法。问题是场景和功能在设计上是孤立的。确保在场景运行之前执行某些操作的方法是定义Background 部分。 AFAIK 你不能跨功能应用相同的背景。场景按功能分组,每个功能都可以指定在每个场景之前执行的Background。我只需将您的设置内容复制粘贴到您需要的任何地方:
Background:
Given I have the base data:
| User | Status | other fields |
| Foo | Active | ... |
| Bar | Disabled | ... |
如果您的设置涉及大量步骤,您可以定义一个步骤,您可以将其扩展为运行所有 “背景” 步骤,如下所示:
Scenario: test something
Given my test setup runs
然后像这样实现my test setup runs:
s.Step(`^my test setup runs$`, func() godog.Steps {
return godog.Steps{
"user test data is loaded",
"other things are set up",
"additional data is updated",
"update existing records",
"setup was successful",
}
})
应该可以的。
当然,为了避免每个场景都必须以 Given my test setup runs 开头,您可以只使用以下代码开始每个功能文件:
Background:
Given my test setup runs
这将确保在每个场景之前执行设置。结果将是:在每个功能文件的开头添加 2 行,然后您就可以开始了。
【讨论】: