mocking - 如何验证链式方法调用?
问题描述
我正在为我的项目的 DAO 类编写测试。但是当我使用 Mockito 的方法时,它会因为方法返回verify()
而抛出。我怎样才能解决这个问题?NullPointerException
createQuery()
null
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
private EntityManager entityManagerMock;
@InjectMocks
private TaksitPlanSatiriDao taksitPlanSatiriDao = new TaksitPlanSatiriDaoJpa();
@Before
public void setUp() {
taksitPlanSatiriEntity = new TaksitPlanSatiriEntity();
}
@Test
public void shouldUpdateWhenGuncelleCalledWithTaksitPlanSatiriEntity() {
taksitPlanSatiriDao.guncelle(taksitPlanSatiriEntity);
Mockito.verify(entityManagerMock).createQuery(ArgumentMatchers.anyString()).executeUpdate();
}
解决方案
尝试:
Mockito.verify(entityManagerMock.createQuery(ArgumentMatchers.anyString())).executeUpdate();
这是基于“Deep Stubs”文档:
推荐阅读
- flutter - 为什么我不能使用来自 pub.dev 的异步库?
- javascript - 如何获取元素形式response.data
- cmake - 为什么使用生成器表达式链接对象库?
- mysql - 当 autocommit=1 并且所有 sql 都足够简单以仅 CRUD 一行时会发生 mysql 死锁吗?
- apache-spark - 根据 Dataframe 中的条件向 Kafka 主题发送数据
- android - 如何使用一个 MediaCodec 实例来解码多个 AAC 流
- graphics - 谁来响应视频渲染?
- c++ - 间距在参考/取消参考符号中是否重要?
- bash - powershell 中的 bash 反向引号等价物是什么?
- node.js - 如何使用 node.js 运行时访问 Azure Function App 函数中的 multipart/form-data