首页 > 解决方案 > 如何验证链式方法调用?

问题描述

我正在为我的项目的 DAO 类编写测试。但是当我使用 Mockito 的方法时,它会因为方法返回verify()而抛出。我怎样才能解决这个问题?NullPointerExceptioncreateQuery()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();
}

标签: mockingmockito

解决方案


尝试:

Mockito.verify(entityManagerMock.createQuery(ArgumentMatchers.anyString())).executeUpdate();

这是基于“Deep Stubs”文档:

https://static.javadoc.io/org.mockito/mockito-core/2.28.2/org/mockito/Mockito.html#RETURNS_DEEP_STUBS


推荐阅读