【问题标题】:Relying on a number of TestExecutionListeners in order to populate an in-memory DB and run integration tests依赖多个 TestExecutionListener 来填充内存数据库并运行集成测试
【发布时间】:2014-05-13 17:13:07
【问题描述】:

我有许多 Spring 集成测试,它们都需要以某种方式使用数据(来自内存数据库)。

这些测试都需要细微的不同数据集,因此到目前为止,我使用普通的 Spring @Component 帮助类(位于测试包层次结构中)直接从测试方法中插入数据,如下所示:

@Autowired
private SomeHelper someHelper;

@Test
public void someIntegrationTest(){
  //Arrange
  someHelper.insertSomeData();
  ...

  //Act
  ...

  //Assert
  ...
}

我发现这个解决方案不是很干净也不是很漂亮,我正在寻求改进它或用替代解决方案替换它....

实现 TestExecutionListeners 的层次结构是否是一个好主意,其中通用所需数据将由基类插入,而特定于单个测试的数据将由子类插入基类??

如果依靠 TestExcutionListener 来插入测试数据不是一个好主意,那么什么是可靠且可行的替代方案?

【问题讨论】:

    标签: spring-test


    【解决方案1】:

    看看Spring Test DbUnit(以及相关的blog announcement)。

    我认为它会满足您的需求。

    问候,

    山姆

    【讨论】:

    • 再次感谢 Sam 的回复。如果您能就使用应用程序存储库/daos(现在由我的应用程序完成)与使用 xml 文件(如使用 db 单元)填充数据库的优缺点向我提供建议,我将不胜感激。当数据比单个表中的几行更复杂时,使用 xml 文件会阻碍重构吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-09
    • 2014-06-19
    • 1970-01-01
    • 1970-01-01
    • 2015-03-21
    • 2015-04-26
    相关资源
    最近更新 更多