Следующий тест терпит неудачу
@Test
public void test() {
Function<String, Integer> foo = Integer::parseInt;
Function<String, Integer> bar = Integer::parseInt;
assertThat(foo, equalTo(bar));
}
есть ли способ сделать это?
изменить. Я попытаюсь сделать более понятным, что я пытаюсь сделать.
Предположим, что у меня есть эти классы:
class A {
public int foo(Function<String, Integer> foo) {...}
}
class B {
private final A a; // c'tor injected
public int bar() {
return a.foo(Integer::parseInt);
}
}
теперь скажу, что я хочу написать unit test для B:
@Test
public void test() {
A a = mock(A.class);
B b = new B(a);
b.bar();
verify(a).foo(Integer::parseInt);
}
проблема заключается в том, что тест не выполняется, потому что ссылки метода не равны.