![]() |
1
4
您将这些写为 不同的 但这些测试之间存在一些依赖关系。因此,听起来您已经将单个逻辑测试流拆分为多个测试方法。 为了满足这些依赖关系,您为测试采用了命名约定,并指示JUnit按照命名约定隐含的顺序运行这些测试。此外,您的测试用例中有一些共享状态,这些状态正在一步一步地“传递”。 这种方法听起来很脆弱,可能会使以下方面变得相当困难:
如果先前的测试失败,指示JUnit以某种方式停止执行测试用例中的后续测试,以及使用静态变量将先前的结果传递到下一步,都是将单个逻辑测试拆分为多个逻辑测试的决策的症状
JUnit在测试用例中没有后续或先前测试的正式概念。这是故意的,因为
因此,与其试图实施他的行为,不如: 如果先前的测试失败,请停止执行测试用例中的后续测试 我建议重新访问您的测试,以减少它们的运行时间,减少昂贵的安装时间,并消除这种将单个逻辑测试流拆分为多个测试方法的方法。相反,每个测试都应该是独立的;其范围应包括(a)设立,(b)执行;(c) 断言;(d) 拆除。
我可以从您的问题中看出,这是一个集成测试,因此设置、依赖关系管理、执行等可能并不简单,所以这种将单个逻辑测试流拆分为多个测试方法的方法可能是为了将复杂的测试流分解为更易消化的单元。如果是这样,那么我建议将这些“步骤”中的每一个分解为私有方法,并从
仅有一个的
|
![]() |
2
1
对于我的集成测试,我添加了以下内容(JUnit5,测试是有序的)。
等等 我无法使用@beforeach/@AfterEach工作来实现(好吧……我没有做太多尝试),但我欢迎这样做 |
![]() |
ammanbesaw · 由于未知原因调用API时收到错误 3 年前 |
![]() |
Armin Orlik · Maven发布执行文件注入 3 年前 |
![]() |
M. Winnicki · GWT和继承模块 3 年前 |
![]() |
nijeg52273 · RCP Oomph安装程序创建指南 3 年前 |