I have method which returns ArrayList of object as below -
public <Range> getAllRanges(List<Range> ranges){
//Some business logic
....
List<Range> resultRanges = new ArrayList<>();
.....
return resultRanges;
}
I am writing Junit for this as -
@Test
public void someInputTest() {
final List<Range> ranges = Arrays.asList(new Range(1, 3), new Range(2, 4));
final List<Range> actual = myCalss.getAllRanges(ranges);
final List<Range> expected = Arrays.asList(new Range(1, 4));
assertEquals(expected, actual);
}
but I am getting Assertion Error like -
java.lang.AssertionError: expected: java.util.Arrays$ArrayList<[(1, 4)]> but was: java.util.ArrayList<[(1, 4)]>
....
After that I tried below code in test -
@Test
public void someInputTest() {
final List<Range> ranges = Arrays.asList(new Range(1, 3), new Range(2, 4));
final List<Range> actual = myCalss.getAllRanges(ranges);
final List<Range> expected = new ArrayList<>();
expected.add(new Range(1, 4));
assertEquals(expected, actual);
}
but after that I am getting -
java.lang.AssertionError: expected: java.util.ArrayList<[(1, 4)]> but was: java.util.ArrayList<[(1, 4)]>
...
Now expected and actual are bot same but still assertion error. What I am doing wrong here.
assertEqualsis perfectly fine for testing two lists for equality. Make sure you have (correctly) implemented theequalsmethod forRangeclass. E.g make sure this assertion passes:assertEquals(new Range(1, 4), new Range(1, 4))