gpt4 book ai didi

java - 部分 mock 的替代品?

转载 作者:太空宇宙 更新时间:2023-11-04 08:43:32 26 4
gpt4 key购买 nike

厌倦了手工制作模拟,我正在尝试将 Mockito 引入我的项目。

假设我有一堆数据库访问器,它们隔离给定用例(或服务)的所有 Hibernate 查询。所以我可以有这样的接口(interface):RoutingDao,UserDao,ReportingDao。这些接口(interface)中的每一个都使用 commit()rollback()reload(Entity) 等方法扩展了一个非常通用的 Dao。对于 Hibernate,后者应该用当前 session 重新加载一个分离的实体。在测试中,它应该只返回其参数。

使用手工制作的模拟很容易:我有一个具有此方法的通用实现的 MockDao,并且 MockRoutingDao 将扩展 MockDao 并使用该实现。我认为使用 Mockito 的一种方法是创建扩展 MockDaoMockRoutingDao 并将未模拟的调用委托(delegate)给它。未继承的方法将使用 spy() 进行模拟。但这非常丑陋 - 我仍然需要手工制作一个模拟,并且部分模拟和继承以重用某些实现的整个想法是一团糟。

我该如何改进它? 为可在多个测试中重用的模拟方法创建共享实现的最佳实践是什么?

最佳答案

您确实想编写一个 org.mockito.stubbing.Answer 实现来处理每个 *DAO 模拟都会处理的常见内容。

您仍然可以添加自定义when stub 到此。

关于java - 部分 mock 的替代品?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4806842/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com