如何在最新的 4.x 版本中将简单字符串传递给 cucumber-jvm stepdef

在功能文件中,我有以下内容(Joe 是我想传递给步骤文件的参数)


   Given Person name is Joe

在步骤文件中,我写道:


@Given("Person name is {string1}")

    public void personName(String name) {

        System.out.println("name=" +name);

    }

在实现 TypeRegistryConfigurer 的类中,我写了


typeRegistry.defineParameterType(new ParameterType<String>(

        "string1",

        "([^ ']*)",

        String.class,

        new Transformer<String>() {

            @Override

            public String transform(String s) throws Throwable {

                return s;

            }

        })

);

我无法使用 name= {string}定义defineParameterType。我得到一个错误,它已经被定义,但是如果我在步骤中使用{string}则Given是未定义的。有更好的方法吗?


炎炎设计
浏览 115回答 1
1回答

凤凰求蛊

匹配字符串时,您的步骤必须将参数值括在引号(单引号或双引号)中因此,将您的故事情节更改为:Given Person name is "Joe"然后你可以使用步骤定义:@Given("Person name is {string}") public void personName(String name) {     System.out.println("name=" +name); }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java