Cucumber中如何将@Then注解正则'(.*)'匹配内容存入方法变量
完全可以,Cucumber原生支持将正则捕获组匹配到的内容直接作为方法参数传入步骤绑定方法,不需要手动在方法内部解析正则。
你之前的写法只需要给方法添加对应顺序的形参即可,正确实现代码如下:
@Then("^ Page is '(.*)' on PDP$") public void checkPageState(String pageState) { // 匹配到的内容会自动赋值给pageState变量,直接使用即可 String str = pageState; // 后续业务逻辑处理 }
使用时注意几个规则:
- 正则中每一个用
()包裹的捕获组,都会按照正则里的书写顺序,依次传入方法的形参,形参的数量需要和捕获组数量保持一致 - 形参默认是String类型,如果匹配到的内容是数字、布尔值等其他类型,直接将形参声明为对应类型即可,Cucumber会自动完成类型转换
- 举个实际运行的例子:当执行匹配的步骤文本为
Page is 'display' on PDP时,上述代码里的pageState变量会自动被赋值为display,不需要额外做取值操作。
内容的提问来源于stack exchange,提问作者Денис Задорожний
相关产品推荐
相关产品推荐

