gpt4 book ai didi

java - N 层架构和单元测试(使用 Java)

转载 作者:行者123 更新时间:2023-12-02 00:47:05 26 4
gpt4 key购买 nike

我想听听您对架构问题的专家解释。想象一个带有验证 API (JSR 303) 的 Spring MVC Web 应用程序。因此,对于请求,我有一个 Controller 来处理请求,然后将其传递到服务层,服务层再传递到 DAO 层。

这是我的问题。验证应在哪一层进行以及如何进行?

我的想法是 Controller 必须处理基本验证(必填字段是否为空?字段长度是否可以?等等)。然后服务层可以做一些涉及其他对象的欺骗性的事情。 DAO 根本不进行任何验证。但是,如果我想实现一些单元测试(即服务下面的测试层,而不是 Controller ),我最终会出现意外的行为,因为一些验证应该在 Controller 层中完成。由于我们不使用它进行单元测试,因此存在问题。

处理这个问题的最佳方法是什么?我知道没有普遍的答案,但非常欢迎您的个人经历。

非常感谢。问候。

最佳答案

在您的服务单元测试中,精心制作您的测试数据,就好像它通过了所有 Controller 级别验证检查一样 - 本质上假设 Controller 级别验证将完美工作,并且您的服务将仅接收从 Controller 角度来看有效的数据。然后,在 Controller 的单元测试中测试每个验证案例。最后,包括在两个级别上均未通过验证的集成测试,并确保没有一个通过。

关于java - N 层架构和单元测试(使用 Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4671637/

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