【问题标题】:What are TestExecutionListeners, and what do they do?什么是 TestExecutionListener,它们有什么作用?
【发布时间】:2015-02-06 14:54:41
【问题描述】:

据我了解,TestExecutionListeners 的行为类似于 JUnit 中的 @BeforeClass 方法。我不明白的是为什么我需要使用DependencyInjectionTestExecutionListenerTransactionalTestExecutionListenerDirtiesContextTestExecutionListener 来使用DbUnitTestExecutionListener

通常没有 DbUnit,我可以创建和填充数据库。为什么我突然需要使用这些侦听器为我的数据库做一些CRUD

【问题讨论】:

    标签: spring spring-test spring-test-dbunit


    【解决方案1】:

    TestExecutionListeners 为在 Spring TestContext Framework 中运行的测试提供各种类型的功能。

    如果您对特定侦听器的功能感兴趣,最好的方法是阅读相应类的 Javadoc。此外,Spring 参考手册的Testing chapter 详细介绍了如何使用每个侦听器以及它们的作用。

    在您的特定情况下,如果您不使用@DirtiesContext,则不需要使用DirtiesContextTestExecutionListener。至于DependencyInjectionTestExecutionListenerTransactionalTestExecutionListener,您可能需要它们将依赖项注入您的测试(例如,通过@Autowired@Inject@Resource 等)和事务测试(即,使用注释的测试) @Transactional)。

    请注意,上述监听器默认启用。因此,如果您一直在使用 Spring TestContext Framework 没有任何自定义侦听器(例如 DbUnit 的侦听器),那么您永远不会意识到侦听器的存在。参考手册中关于TestExecutionListener configuration 的部分也应该有助于澄清事情。但是请注意,某些功能(如默认侦听器的合并和自动检测)仅在 Spring Framework 4.1+ 中可用。

    问候,

    Sam (Spring TestContext 框架的作者)

    【讨论】:

      猜你喜欢
      • 2017-05-30
      • 2011-01-14
      • 2011-09-11
      • 2011-08-08
      • 2011-08-03
      • 1970-01-01
      • 2019-04-26
      • 2016-04-29
      • 2017-03-02
      相关资源
      最近更新 更多