我正在尝试使用specflow编写一个场景,我正在下载文件并检查是否有下载的文件。
Scenario Outline: Download excel files
Given I am on the Shipping
When I download a <downloadfile> file
Then I should be able to download the file.
Examples:
| downloadfile |
| xyz |
| abc |
当我生成步骤文件时,我的steps.cs文件中会生成以下内容:
[When(@"I download a xyz file\.")]
public void WhenIDownloadAXyzFile_()
{
ScenarioContext.Current.Pending();
}
有人可以告诉我为什么我在步骤定义中没有得到(。*)吗?它在步骤定义中显示了第一个示例内容。
答案 0 :(得分:0)
当步骤是纯文本时,例如:
When I download a xyz file
框架无法用来确定&#34; xyz&#34;是您要捕获的项目。
在它周围放置引号,让框架知道它可以在步骤定义中捕获和使用。
When I download a "xyz" file
和
When I download a 'xyz' file
两者都会生成正确的步骤定义。由于模糊匹配,在任何基于黄瓜的框架中使用(。*)在步骤定义的正则表达式中是危险的。
如果要下载具有特定大小的文件,则使用(。*)您打算使用它将会破坏未来的步骤定义。
When I download a jpeg file
和
When I download a 500kb jpeg file
两者是否匹配相同的东西。所以要小心。