我正在测试一个菜单/餐厅聊天机器人,并且需要验证它是否收到了我键入的确切输入。我查询调试器以取回输入。
我的输入字符串是What is cocktail?
。这是响应:
"userInputs": {
"originalInput": {
"sentence": "What is cocktail?",
"timestamp": 2088408809
}
},
所以绝对可以得到正确的输入。该错误似乎在我的JSON断言中。在这里,是从CSV文件(其中input
=什么是鸡尾酒?)中获取数据。
然后我的断言失败,并显示消息Input : Value expected to match regexp '(?i)What is cocktail?', but it did not match: 'What is cocktail?'
除了正则表达式外,它们在我看来都一样。如果我删除问号,则测试通过。我在正则表达式中缺少明显的东西吗,我的字符串中不能有问号?
答案 0 :(得分:0)
如果您不想使用特殊含义,则问号是must be escaped正则表达式中的字符的一部分
?问号是零或一的匹配量。
您可以使用JSR223 PreProcessor
替换值vars.put("inputEscaped", vars.get("input").replace("?","\\?"));
它将创建一个您可以使用的新变量${inputEscaped}
(也可以覆盖input
)