当前位置: 首页 > 知识库问答 >
问题:

Spring rest doc-服务层嘲弄

袁成化
2023-03-14

最近,我看到一篇博文说,“出于文档的目的,我们在服务层使用mocking(在使用spring rest doc的环境中)”,所以这篇博文使用了类似spring的@MockBean到服务层对象的注释。

但我认为,如果我模仿服务层-

所以我觉得这是不对的但是,

我想知道什么更好,或者如何将service object与spring rest文档一起使用

恳求回答

共有1个答案

臧曜瑞
2023-03-14

在使用Spring REST文档时,模仿服务层是否是一个好主意在很大程度上取决于个人偏好。

模拟服务层的一个可能缺点是,文档可能与服务的实际行为不同步。这削弱了REST文档帮助您保持文档和服务同步的能力。

模拟服务层的一个优点是,它可以更容易地记录错误场景或需要大量设置的场景。在出现错误的情况下,我认为最好在整个API中采用一种通用方法,并一致使用标准HTTP错误代码。如果这样做,就减少了记录服务中每个endpoint的错误响应的需要。

这使得记录更复杂的场景需要大量的设置。在这种情况下,有限地使用mock可能是值得的,但我仍然希望在不依赖mock的情况下尽可能多地生成您的文档。

 类似资料:
  • 我在spock框架测试方面是非常新的,我没有找到任何可以找到所需信息的例子。因此,我认为最好的方法是向一个例子展示我需要拥有的东西。 > 例如。斯波克的测试类: 将数据作为域类: 现在我有了测试,并且想模拟唯一的方法。这意味着每次调用时,都需要有msg成功的对象数据,但是方法中的所有其他方法都应该正常调用。 很可以理解吗?问题是如何将服务类注入/模拟到spock测试类中?

  • 问题内容: 我不确定在JSF中使用MVC环境的方法是否是最佳方法。由于我想充分利用JSF,因此我想知道应该如何“设计”我的服务层(或模型,用MVC术语来讲)。 我知道View-Controller的比例应该是1到1(排除的例外)。现在应该以哪种方式设计服务层?我应该使用一项大型服务(不这样认为)吗?如果没有,我应该基于什么拆分服务? 请注意,我的服务将从Bean(MVC术语为控制器)中调用,并且服

  • 我有一个Spring MVC应用程序。它有控制器、服务和Dao。我只想通过使用Mockito模拟DAO层来测试控制器和服务。 我的控制器类: 我的服务类: 我的测试类: 问题:通过自动连线控制器和服务,它可以很好地执行通话。然而,从服务中,DAO调用的是一个真正的DAO,而不是模拟的DAO。 > 在控制器中保留道并对控制器使用@InjectMock可以正常工作,但是我想在服务中保留道,并且只测试控

  • 我正在使用当前层拓扑: 1)道2)服务3)控制器(演示) 在我的一个控制器中,我收到以下呼叫(来自客户端): 控制器现在应该将调用委托给服务层。 问题是,如果我创建一个如下方法: 在我的服务中,我实际上让我的服务层意识到DTO对象! 我认为这是一种不好的做法(或者不是?) 因此,我提出的另一个选择是创建一个新类: 然后调用我的控制器: 这个解决方案的问题是我在我的项目中根本没有使用这个类,所以它看

  • 这一节介绍了aiohttp.web的基础底层服务器。 抽象基础 有时候用户不需要更高级的封装,像是 application,routers和signals。 只是需要一个支持异步调用并且是接受请求返回响应对象的东西。 在aiohttp.web.Server类中有介绍过一个服务协议工厂——asyncio.AbstractEventLoop.create_server(),并可以将数据流桥接到web处

  • 在我的示例中,我有一个Hibernate实体和一个DAO。 当我以这种方式使用DAO时 数据库中只保存了一行(Action2)。当我删除注释时,两行(Action1和Action2)都被保存(这是我需要的行为)。我的问题是服务层上的事务注释如何影响事务(方法executeTransaction())的执行。为什么没有服务层上的事务性注释,这两行都保存在数据库中,而只有最后一行与此注释一起保存?