0

我在使用 junit 和 mockito 编写的 spring boot 中进行了单元测试。我的方法使用了将代码块作为输入并执行所需功能的方法。下面是代码示例。

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());
    }
}

此代码运行良好,但代码覆盖率非常低,因为代码块未执行。有什么方法可以执行代码块并增加覆盖率。

4

1 回答 1

0

使用模拟(A)测试您的类(B)是正确的,目标是测试 B 中的任何逻辑并验证与协作者(在本例中为 A)的交互。

然后我将为 A(模拟代码块类)创建测试,应用与上述相同的原理。

最后,我将独立测试 Codeblock 逻辑。

于 2020-09-07T15:30:56.027 回答