我有以下断言代码...
Boolean result = prev.getResponseDataAsString().matches(".*Close.*")
System.out.println(result)
if(!result){
BufferedWriter writer = null;
try{
writer = new BufferedWriter( new FileWriter("I:\\failedpayload.txt"))
writer.write(prev.getResponseDataAsString())
}
catch(Exception ex){
System.out.println(ex.getMessage())
}
finally{
writer.close()
}
// System.out.println("Response:"+prev.getResponseDataAsString());
}
AssertionResult.setFailure(!result);
测试失败,结果为假。但是,当我查看创建的文件时,我会看到那里的搜索字符串。
为什么在创建的文件中Close
而不是在创建 boolean 值时Close
?
最佳答案
这最终成功了......
import java.util.regex.*
...
Pattern aPattern = Pattern.compile(".*Close.*",Pattern.MULTILINE);
Matcher aMatcher = aPattern.matcher(prev.getResponseDataAsString());
Boolean result = aMatcher.find();
基本上,正如评论建议的那样,匹配不适用于多行。
关于java - 字符串 `matches` 似乎在 JSR223 断言中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50358062/