mockito接口没法赋值_Mockito:无法实例化@InjectMocks字段:类型是接口

本文探讨了在使用Mockito进行测试时遇到的‘MockitoException:无法实例化@InjectMocks字段,类型是接口’的问题。问题源于尝试在接口上使用@InjectMocks注解。解决方案包括明确声明字段的具体实现类型或在初始化时指定具体类型。文章还讨论了如果受测类依赖于构造函数参数的情况。
摘要由CSDN通过智能技术生成

mockito接口没法赋值

使用Mockito进行Java类的模拟和存根的任何人,可能都熟悉InjectMocks -annotation。 在要测试上使用此批注,Mockito将尝试通过构造函数注入,setter注入或属性注入来注入模拟。 魔术成功了,它无声地失败了,或者抛出了MockitoException

我想解释什么原因导致“ MockitoException:无法实例化名为xxx的@InjectMocks字段! 原因:类型是接口”以及解决方法。

问题

考虑以下JUnit 5测试,该测试可以验证女服务员是否可以正确提供早餐。 厨房工作人员中的任何人都可以提供早餐,并且该测试会验证当提供早餐时,咖啡机开始冲泡咖啡,而烤面包机开始烘烤。

 @ExtendWith (MockitoExtension. class )  public class WaitressTest { 
   @Mock 
   CoffeeMachine coffeeMachine; 
   @Mock 
   Toaster toaster; 
   @InjectMocks 
   KitchenStaff waitress; 
   @Test 
   void should_serve_breakfast() { 
     waitress.s
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值