Как выполнить модульное тестирование блоков кода при весенней загрузке

У меня есть модульный тест в весенней загрузке, написанный с использованием 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());
    }
}

Этот код работает нормально, но покрытие кода очень низкое, потому что блок кода не выполняется. Есть ли способ выполнить блок кода и увеличить покрытие.


person Sam    schedule 07.09.2020    source источник


Ответы (1)


Тестирование вашего класса (B) с использованием mocks (A) является правильным, цель состоит в том, чтобы протестировать любую логику в B и проверить взаимодействие с соавторами (в данном случае A).

Затем я бы создал тест для A (имитация класса Codeblock), применяя тот же принцип, что и выше.

Наконец, я бы проверил логику Codeblock самостоятельно.

person Beppe C    schedule 07.09.2020