2

有没有办法在场景的示例表中使用强类型值?(或替代解决方案)

我想知道我是否userType在编码期间(而不是在运行测试期间)在列中输入了错字。

更新

文件特征

Scenario Outline: Scenario123
Given Create new user of type "<userType>"
Examples:
| userType     |
| PlatinumUser |
| CommonUser   |

步骤.cs

[Given(@"Create new user of type ""(.*)""")]
public void CreateNewUser(UserTypeEnum userType)
{
    // some code like e.g.:
    MyUser user = new MyUser(userType);
    //...
}

enum UserTypeEnum  { CommonUser, PlatinumUser, Spectre }
4

1 回答 1

1

看起来它是您所追求的 StepArgumentTransformation?

https://github.com/techtalk/SpecFlow/wiki/Step-Argument-Conversions

以某种方式沿着这些方向使用:

[Binding]
public class Transforms
{
    [StepArgumentTransformation]
    public UserTypeEnum UserTypeTransform(string UserType)
    {
      // return the string converted into the required Enum
    }
}

步骤绑定将看到它需要一个 UserTypeEnum 作为参数,因此它将在具有 Binding 属性的任何类中搜索所有可用的步骤参数转换,并使用此方法执行转换。

于 2019-04-05T11:09:03.980 回答