int i = 0for ( expectedErrors in errors ) {    final List<String> actualErrors = new ArrayList<>()    actualRequestMessages?.get(i++)?.errorData?.errors?.each {        item -> actualErrors.add(${item.message})    }    assert [ ] == ((actualErrors - expectedErrors) + (expectedErrors - actualErrors)), [expectedErrors, actualErrors, Expected Errors doesn't match actual]}Currently, I am comparing actual error messages inside actualRequestMessages.errorData.errors with a list of expectedErrors as mentioned above. Is there a better way of doing it in Groovy?Errors come from spock test in the form of a list of errors:errors[[error1],[error1,error2,error3]]
Comparing a list of messages with a list inside an object
unit testing;groovy
Instead of this:final List<String> actualErrors = new ArrayList<>()I believe you can write simply:final actualErrors = []I don't really understand the point of this:assert [ ] == ((actualErrors - expectedErrors) + (expectedErrors - actualErrors))The only way this will be true is if this is true:assert actualErrors == expectedErrorsWhich is a lot simpler.Btw, this is not idiomatic in Groovy:assert [ ] == somethingThis is the idiomatic way:assert !something(because non-empty collections are true)