#spring-boot #unit-testing #junit #mockito #springmockito
#spring-boot #модульное тестирование #junit #mockito #springmockito
Вопрос:
У меня есть модульный тест в spring boot, написанный с использованием junit и mockito. У меня есть метод, который использует метод, который принимает блок кода в качестве входных данных и выполняет требуемую функцию. Ниже приведен пример кода.
class A{
execute(Codeblock codeblock){
}
}
Class B {
C testFunction(){
return A.execute(()->{
code to execult ...;
});
}
}
class TestB{
@InjectMock
B b;
@Mock
A a;
void testFunction(){
when(A.execult(any())).return(C);
AssertNotNull(b.testFunction());
}
}
Этот код работает нормально, но охват кода очень низкий, потому что блок кода не выполняется. Есть ли какой-либо способ выполнить блок кода и увеличить охват.
Ответ №1:
Тестирование вашего класса (B) с использованием mocks (A) является правильным, цель состоит в том, чтобы протестировать любую логику в B и проверить взаимодействие с сотрудниками (в данном случае A).
Затем я бы создал тест для (mocking Codeblock class), применяя тот же принцип, что и выше.
Наконец, я бы проверил логику Codeblock независимо.