在 jbehave 中是否可以使用参数化表格参数?

In jbehave is it possible to use parameterised tabular parameter?

假设我有使用某种模式更改文件名的主要应用程序代码。在 jbehave 故事中,我想将此模式和预期文件名移动到 "Examples"。问题是 "expected file name" 列应该包含模式(上一列)。是否可以在 "Examples" 部分使用 "variables"?

故事文件

Given that exist file named originalFName
When …
Than file name should be expectedFName

Examples:
|pattern    | originalFName | expectedFName   |
|someString | pattern.txt   | AAA_pattern.rtf |

grrovy

@Given('that exist file named $originalFName')
void isFileExist(@Named('originalFName') String fName) {…}

@Than('file name should be expectedFName')
void fNameShouldBe(@Named('expectedFName') String expectedFName) {…}

所以我想知道在编译时是否可以得到(在这种情况下)

原始FName == someString.txt

expectedFName == AAA_someString.rtf

有多种实现方式。例如

Given fileNamePart
When exist file named originalFName
When …
Than file name should be expectedFName

Examples:
|fileNamePart| originalFName | expectedFName   |
|someString  | %s.txt        | AAA_%s.rtf      |

并且在代码中只需将 %s 替换为 fileNamePart:

originalFName = String.format(originalFName,fileNamePart)

您可以使用正则表达式或动态 groovy 评估代替 %s + String.format...