在没有任何上下文配置文件的情况下,在JUnit测试用例中与Spring BOOT和Mockito自动连接

时间:2018-09-28 17:48:22

标签: spring-boot junit mockito

我正在寻找一种解决方案,可以在对主bean注入Mocks时注入的某些bean上使用自动装配注释。     我有这样的A类,我想在Test类中使用Autowired D而不是模拟D。我正在使用Spring Boot版本2.0。如果有人知道任何解决方案,请告诉我。

   @Repository
   Class A{

     B b;
     C c;
     D d;

     @Autowired
     public A(B b, C c, D d)
     {
           this.a =a;
           this.b = b;
           this.c = c;
      }

}

我正在尝试使用Mockito以及一些依赖项的Autowired注释来实现这一点。我不想模拟D。这种方法行不通,我想知道我可以做些什么来使它起作用。如果有人将Mockito与Autowired注释一起使用。

@RunWith(SpringJUnit4ClassRunner.class)
Class ATest{

   @Autowired
   @InjectMocks
   A a;

   @Mock
   B b;

   @Mock
   C c;

   @Autowired
    D d;
}

2 个答案:

答案 0 :(得分:0)

由于您尝试编写单元测试,因此可以使用Mockito来运行已在使用的单元测试。

@RunWith(MockitoJUnitRunner.class)
Class ATest{

   @InjectMocks
   A a = new A();

   @Mock
   B b;

   @Mock
   C c;

   @Mock
    D d;
}

答案 1 :(得分:0)

我已经解决了我的问题,如果我在测试类中对类型D的对象使用@Spy注释而不是@Mock,它将调用实际的而不是Mock。