黄瓜-jvm的自定义数据表变换器

pep*_*uch 9 java cucumber cucumber-jvm

我想在黄瓜中创建自定义数据表变换器.这是我的功能的样子:

Given board
| o | _ | _ |
| o | _ | _ |
| o | _ | _ |
Run Code Online (Sandbox Code Playgroud)

我想把它放到自定义对象中.让我们说它看起来像这样:

class Board {

    private List<List<String>> board;

    public Board(List<List<String>> board) {
        this.board = board;
    }

}
Run Code Online (Sandbox Code Playgroud)

我的步骤定义应如下所示:

@Given("^board$")
public void board(Board board) throws Throwable {
    // todo
}
Run Code Online (Sandbox Code Playgroud)

步骤定义适用于DataTable类和List<List<String>>

@Given("^board$")
public void board(DataTable board) throws Throwable {
    // this works fine
}
Run Code Online (Sandbox Code Playgroud)

这也很好

@Given("^board$")
public void board(List<List<String>> board) throws Throwable {
    // this also works fine
}
Run Code Online (Sandbox Code Playgroud)

我试图在互联网上找到解决方案但没有任何成功.我也尝试创建,Transformer但是,正如我所见,它只适用于字符串(我想在输入中使用Datatable或List>):

class BoardTransformer extends Transformer<Board> {

    @Override
    public Board transform(String value) {
        // TODO Auto-generated method stub
        return null;
    }

}
Run Code Online (Sandbox Code Playgroud)

Jef*_*ado 0

如果你可以一起去

@Given("^board$")
public void board(List<List<String>> board) throws Throwable {
...
Run Code Online (Sandbox Code Playgroud)

为什么不立即创建 Board 对象

Board board2 = new Board(board);
Run Code Online (Sandbox Code Playgroud)

看来你不需要变压器。