是否有支持以下场景的 Java 测试库?
假设,您必须为基于数据库的 Web 应用程序(例如使用 Selenium)编写 Web 浏览器测试。典型的测试将具有以下工作流程:
- 将测试数据插入数据库
- 运行测试逻辑(打开 Web 浏览器,浏览某处,操作某事,验证是否显示正确的内容,验证数据库状态是否正确更改)
- 清除数据库
特别是在这种集成测试的情况下,您通常需要一组复杂的不同对象来运行 Web 应用程序(例如,您需要一个用户帐户、与业务相关的东西,如产品、订单等)。为了保持测试相互独立并能够并行运行测试,您希望为每个测试创建此对象网络,可能具有伪随机对象属性,例如user.name="user_123"
.
现在,在我看来,为每个测试重复做一些事情的好地方是@Before
-annotated 方法。但是,如果该@Before
方法插入了一个 DB 状态,则测试方法将不知道如何访问该状态,例如如何找到该@Before
方法创建的用户对象。最好有一种测试方法上下文,它由@Before
方法设置并且可以被测试方法使用。
我考虑过自己实现类似的东西,也许是一个简单的静态哈希图,以测试方法名称为键,但可能已经有一个提供此功能的库并且您知道它;-)。