比方说,我有一些主要的应用程序代码,它们使用某种模式来更改文件名。在jbehave故事中,我想将此模式和预期的文件名移至“示例”。问题是“预期文件名”列应包含模式(上一列)。可以在“示例”部分中使用“变量”吗?
故事文件
Given that exist file named originalFName
When …
Than file name should be expectedFName
Examples:
|pattern | originalFName | expectedFName |
|someString | pattern.txt | AAA_pattern.rtf |
高兴
@Given('that exist file named $originalFName')
void isFileExist(@Named('originalFName') String fName) {…}
@Than('file name should be expectedFName')
void fNameShouldBe(@Named('expectedFName') String expectedFName) {…}
所以我想知道在编译时是否可以得到(在这种情况下)
originalFName == someString.txt
expectedFName == AAA_someString.rtf
答案 0 :(得分:1)
许多方法可以实现这一点。例如
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)
您可以使用regexp或动态groovy评估来代替%s
+ String.format
。