当实际消息中的行发生变化时如何将实际消息与预期消息进行比较
How to compare actual message with expected message when the lines in actual message are changing
我正在尝试通过 java-selenium.But 比较以下消息 在 execution.Please 期间,实际消息中的行正在更改 让我知道如何处理它。
例如:
String expMsg="Line1.\n"
+ "Line2\n"
+ "Line3\n"
+ "Line4\n"
+ Line5\n" + "\n"
+ "Line6."
String actMsg="Line1.\n"
+ "Line3\n"
+ "Line2\n"
+ "Line5\n"
+ Line4\n" + "\n"
+ "Line6."
我尝试了以下但失败了:
if(actMsg.contains(expMsg){
System.out.println("both the messages are same")
}
请告诉我如何解决这个问题。
据我了解,actualMessage 的顺序无关紧要,您只需要检查 actualMessage 中是否存在所有 expectedMessage 即可?在这种情况下,将每一行保存在单独的 variable/array 中,然后验证每个 expectedMessage 是否存在于实际使用的包含中。
`
for(i=1, i<6, i++) {
if(actMsg.contains(expMsg+i){
System.out.println("both the messages are same")
}else
System.out.println("both the messages are not same")
}
`
让我知道这是否有效
将您的 String
转换为 Stream
Arrays.stream(actMsg.split("\n"));
然后
这是我如何解决你的例子:
List<String> expMsg = Arrays.asList("Line1", "Line2", "Line3", "Line4", "Line5", "Line6");
String actMsg = "Line1.\n"
+ "Line3\n"
+ "Line2\n"
+ "Line5\n"
+ "Line4\n" + "\n"
+ "Line6.";
boolean containsAll = expMsg.stream()
//select only elements which are in actMsg
.filter(actMsg::contains) //e -> actMsg.contains(e)
//all strings from expMsg should be present
.count() == expMsg.size();
System.out.println(containsAll);
拆分 expMsg
中的所有行并检查是否所有行都在 actMsg
.
中
我正在尝试通过 java-selenium.But 比较以下消息 在 execution.Please 期间,实际消息中的行正在更改 让我知道如何处理它。
例如:
String expMsg="Line1.\n"
+ "Line2\n"
+ "Line3\n"
+ "Line4\n"
+ Line5\n" + "\n"
+ "Line6."
String actMsg="Line1.\n"
+ "Line3\n"
+ "Line2\n"
+ "Line5\n"
+ Line4\n" + "\n"
+ "Line6."
我尝试了以下但失败了:
if(actMsg.contains(expMsg){
System.out.println("both the messages are same")
}
请告诉我如何解决这个问题。
据我了解,actualMessage 的顺序无关紧要,您只需要检查 actualMessage 中是否存在所有 expectedMessage 即可?在这种情况下,将每一行保存在单独的 variable/array 中,然后验证每个 expectedMessage 是否存在于实际使用的包含中。 `
for(i=1, i<6, i++) {
if(actMsg.contains(expMsg+i){
System.out.println("both the messages are same")
}else
System.out.println("both the messages are not same")
}
`
让我知道这是否有效
将您的 String
转换为 Stream
Arrays.stream(actMsg.split("\n"));
然后
这是我如何解决你的例子:
List<String> expMsg = Arrays.asList("Line1", "Line2", "Line3", "Line4", "Line5", "Line6");
String actMsg = "Line1.\n"
+ "Line3\n"
+ "Line2\n"
+ "Line5\n"
+ "Line4\n" + "\n"
+ "Line6.";
boolean containsAll = expMsg.stream()
//select only elements which are in actMsg
.filter(actMsg::contains) //e -> actMsg.contains(e)
//all strings from expMsg should be present
.count() == expMsg.size();
System.out.println(containsAll);
拆分 expMsg
中的所有行并检查是否所有行都在 actMsg
.