У нас есть следующий сценарий:
Mid-test, некоторые контекстные переменные должны быть обновлены. Где именно в тесте и что именно должно произойти, является переменной. Я хотел бы предоставить функцию-обертку, которая устанавливает некоторые переменные контекста и затем выполняет все утверждения, которые были даны ей в вызове функции.
Итак, что-то вроде следующего:
public void withDefaultContextA(Function<???, Void> noArgsCall) {
setupDefaultContextA();
noArgsCall.invoke() // not sure how apply() would be invoked here
}
или
public void withContextA(BiFunction<???, Context, Void> providedContextCall) {
setupContext(providedContext); // not sure how apply() would be invoked here
}
И в соответствующем тесте они должны вызываться следующим образом:
@Test
public void testSomething() {
withDefaultContextA(() -> {
... // do some asserts
}
withContext((new Context(...)) -> {
... // do some asserts
}
}
Как мне этого добиться? Можно ли использовать функции Java 8 таким образом? Если нет, то есть ли другой способ добиться этого?