【发布时间】:2021-07-27 14:39:48
【问题描述】:
我正在尝试在 Java 中构建一个集成测试方法,但是有些服务方法没有返回值(void)。所以,在这个场景中,通常我会创建一个记录,然后使用创建记录的 id 检索该记录。但是,由于没有返回值,我该如何编写集成测试,例如这种服务方法?这可能吗?
public void saveProperties(final Request request, final UUID productUuid) {
repository.saveProduct(request, productUuid);
}
【问题讨论】:
-
是否可以为此方法构建集成测试?
-
'所以,在这个场景中,通常我会创建一个记录,然后使用创建记录的 id 检索该记录。' - 这个场景有什么不同?
productUuid不是你可以通过它检索产品吗? -
@crizzis 当我在测试方法中调用
saveProperties时,它不会返回任何内容。那么,我该如何使用productUuid? -
我不确定我是否理解。您使用某些参数调用
saveProperties。productUuid就是其中之一。然后您不能使用与方法调用相同的productUuid来检索产品(repository.findByProductUuid()、entityManager.createQuery("SELECT p FROM Product p WHERE p.uuid = :uuid").getSingleResult()或您可用的任何其他方法)来检索产品并检查它是否已正确保存? -
另外,没有什么可以阻止您返回创建/更新产品的 ID 以进行测试。您可以在生产代码中忽略它并在测试代码中使用它
标签: java spring testing junit integration-testing