在 spring MVC 应用程序中编写测试用例的标准做法是什么?

What is the standard practice of writing test cases in spring MVC application?

我们正在开发新的 Spring MVC 应用程序,其中我们有 DAO 和服务层。我应该在 junit 还是 testNG 中编写测试用例的哪一层?。这方面的标准做法是什么?

我会考虑使用 junit 和 MockMvc 为您的端点编写一般(无极端情况)集成测试,并使用 junit 和 Mockito 编写单元测试以测试您服务中的特定业务案例 类。在您的单元测试中,您可以测试所有可能的场景和极端情况。单元测试对此更好,因为它们更小且更易于维护,而集成测试可确保您的 API 在一般水平上正常工作。

在controller层写case总是更好
如果测试用例执行发生在所有层(从控制器到 DAO/DB),那么覆盖率会更高(超过 90%)。 如果您正在使用 Mockito 那么您可以模拟最后一层(dao 或任何其他层),因为有时数据库操作不适合测试用例。

如果您愿意与 DB 交互,那么您将获得比模拟 DAO 更好的覆盖率。

注意:在编写测试用例时尽量覆盖大部分层和功能。