【问题标题】:Is it advisable to have sequential integration tests?进行顺序集成测试是否可取?
【发布时间】:2020-02-22 02:57:42
【问题描述】:

我是集成测试的新手,目前正在使用 SpringBootTest。

我从示例中大致收集到的信息是,每种方法都是一个集成测试(对应于一个 REST 调用)。

但是,如果我想测试一个包含一系列步骤的场景怎么办?比如创建用户->更新用户->删除用户。

也许这不叫集成测试?如果是这样,我如何将这些链接到 SpringBootTest 中?

【问题讨论】:

    标签: spring-boot junit integration-testing spring-boot-test


    【解决方案1】:

    好吧,在那个测试级别有一个测试订单是可以的,我的意思是级别是这样的:

    单元测试 -> 组件测试 -> 集成测试 -> 端到端测试。

    当您向右移动时,测试的设置和执行会更加复杂。

    在我看来,您描述的测试是集成测试,因此,有顺序是可以的,但是,您应该尽量避免增加复杂性,例如,使用像 H2 这样的模拟内存数据库,并在您使用时填充它正在测试,帮助很大。

    由于数据库在内存中,您无需清理或恢复该数据库的状态,测试完成后数据就会消失。

    现在,您需要注意测试方法的顺序。 JUnit5 使用了一个新的注解@TestMethodOrder 而JUnit4 使用了@FixMethodOrder,这不是很可定制,你可以找到更多信息here

    最后,我建议使用更多与 BDD 相关的东西,例如 Cucumber 进行此类测试

    【讨论】:

      猜你喜欢
      • 2018-06-26
      • 1970-01-01
      • 2013-07-13
      • 1970-01-01
      • 2012-07-23
      • 2010-11-18
      • 2015-11-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多