У меня есть два класса:модульного тестирования Java издеваться метод с предикатом в качестве аргумента
ClassA {
public String methodA(String accountId, Predicate<User> predicate) {
// more code
};
}
ClassB {
methodB(){
ClassA objectA = new ClassA();
objectA.methodA("some id", PredicatesProvider.isUserValid());
// more code ...
}
}
class PredicatesProvider {
static Predicate<User> isUserValid(){
return (user) -> {
return user.isValid();
}
}
В моем тестовом модуле, мне нужно издеваться CLASSA, поэтому я использую макет метод Mockito как следующее:
ClassA mockObjectA = Mockito.mock(ClassA.class);
Mockito.when(mockObjectA).methodA("some id", PredicatesProvider.isUserValid()).thenReturn("something");
Mockito не нашел подпись.
The java.lang.AssertionError: expected:<PredicatesProvider$$Lambda$5/[email protected]> but was:<PredicatesProvider$$Lambda$5/[email protected]>
Это своего рода упрощенная версия того, чего я пытаюсь достичь. Я думаю, это проблема с функцией equals() предиката. Любая идея, как издеваться над методом, который имеет предикат?
Благодаря
Я хочу продолжить первое решение, потому что # 3 отменит проверку и не требует точного соответствия. – beijxu