gpt4 book ai didi

java - 我应该如何对 Java Web 应用程序进行单元测试

转载 作者:行者123 更新时间:2023-12-01 18:27:33 25 4
gpt4 key购买 nike

我有 servlet、域对象、一些 ORM 库。我想对 Java Web 应用程序的决策逻辑(外观)进行单元测试。

我不想在单元测试中使用数据库。我想尽可能少地使用模拟对象。

我应该使用什么方法?什么库/框架解决了这个问题并且有很好的记录?

最佳答案

如果您想要单元测试,您需要模拟系统的某些部分或使用实际的数据库。否则,您只需编写一个没有模拟的集成测试,并在实时系统上运行您的场景。

您可以做的几件事:

  • Arquillian对于集成测试来说很酷,您实际上可以在其中引导应用程序,因此这里没有模拟。如果您遵循一些标准 Java EE 模式/技术,那么设置起来会非常快速且简单

  • DbUnit +一些内存数据库 - 我知道你说过你不想使用数据库,但相信我,有时测试实际的东西是个好主意。使用 DBUnit,您可以轻松地预填充它,并且使用内存数据库,它会非常快(已经提到的 H2 很好,在我之前的工作中我们使用 SQLite )。从技术上讲,不适用于单元测试,除非您正在测试数据库层。

对于其他典型的单元测试,填充常用的 JUnit , Mockito , AssertJ 、Jukito(如果您使用的是 Guava )是很好的补充。

我想你需要选择模拟或使用数据库,行为必须来自某个地方。

那些将是基于 Java 的框架。除此之外,还有几个基于 Javascript 的框架会戳你的网站,但这些也是集成测试。

@Edit:我个人的做法是:内存中的 DB + dbunit 用于测试数据库层,模拟其他所有内容,因为您应该相当确定数据库层是否正常工作。

关于java - 我应该如何对 Java Web 应用程序进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25542684/

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