SpecFlow如何从表格传整数到scenario、feature文件?报错如何解决
问题根因
- 你当前的场景使用了Examples参数化表格,但场景关键字用错了:参数化场景必须使用
Scenario Outline而非Scenario。普通Scenario不会识别<参数名>占位符,不会将其和Examples表格的字段做映射替换,导致步骤匹配时参数解析异常,抛出参数计数不匹配的错误。
修复方案
- 把feature文件中的
Scenario修改为Scenario Outline - 修正Given行重复的
Given关键词,避免不必要的匹配异常
修复后的feature文件代码如下:
Scenario Outline: When I submit my request to an API Given a valid input is used When the specific request data is meets certain criteria Then the status code for this test should be <ExpectedResult> Examples: | ExpectedResult | | 200 |
- (可选优化)你的断言逻辑现在固定对比200,建议改成和实际接口返回的状态码对比,参数化才会有实际意义,参考调整后的绑定方法:
[Then(@"the status code for this test should be (.*)")] public void ThenTheStatusForThisTestCodeShouldBe(int expectedStatusCode) { // 这里的actualStatusCode替换为你实际存储接口返回状态码的变量 Assert.AreEqual(expectedStatusCode, actualStatusCode); }
内容的提问来源于stack exchange,提问作者MrRabbit
相关产品推荐
相关产品推荐

