gpt4 book ai didi

spring - Spring Framework端到端测试的好策略

转载 作者:行者123 更新时间:2023-11-28 20:15:54 24 4
gpt4 key购买 nike

所以这是一个相当“大”的问题,但我想要完成的是以下内容:

我有一个在 tomcat 上运行的 Spring 应用程序、MVC、JDBC (MySQL) 和 JSP。

我的目标是使用适当的方法测试整个“堆栈”。

到目前为止,我所拥有的是 Junit 使用 Selenium 来模拟与应用程序交互的实际用户(为此需要一个虚拟帐户),并执行不同的验证,例如,查看页面中是否存在元素,查看数据库中是否存在具有特定值或值是否与数据库匹配。

第一个问题是,这实际上是在使用数据库,因此很难测试某些场景。我真的很想能够模拟数据库。让它模拟特定的帐户配置、数据状态等

第二个问题是考虑到我使用的是数据库中的数据,并且数据在不断变化,很难预测行为,因此很难正确断言

我查看了 Spring Test,但它允许在 servlet 容器外进行测试,因此无法进行 JSP 和 Javascript 测试。

我看到了 DBUtils 文档,但不确定在这种情况下它是否对我有帮助

因此,我想向我的开发人员同事们寻求提示:

  • 在模拟数据库上运行 selenium 测试
  • 允许每个测试使用不同的配置
  • 保持与 Maven/Gradle 的兼容性

最佳答案

我已经开始使用有序的 Autowiring 功能来支持这种 stub 。

这基本上是我从过去使用的 Seam 框架中接手的一个想法,但我在 spring 中找不到类似的东西。
这个想法是有一个优先级注释(fw,app,mock,...)将用于解析 Autowiring bean 的当前实现。这在 xml 中已经很容易了,但在 java config 中则不然。

因此,我们的普通存储库 bean 具有应用程序优先级和测试包,这些类具有模拟优先级。如果两者都在类路径中,则 spring 通常会失败并出现重复的 bean found 异常。在我们的例子中,扩展的 beanfactory 只接受具有最高优先级的 bean。

我不确定是否可以直接使用 spring 的顺序注释,但无论如何我更喜欢“定义明确”的优先级范围,因此我们的开发人员会清楚这是什么意思。

!虽然这是一个很好的 stub 方法,但用于测试的 beans 我不会用它来替换数据库定义,而是使用像 hsql 这样的内存数据库,就像之前提到的一些答案一样。 !

关于spring - Spring Framework端到端测试的好策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15125832/

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