首页 > 解决方案 > 如何在 spring data neo4j (SDN5) 中加载夹具数据集以进行集成测试

问题描述

我想在一个项目中编写集成测试,该项目在(非 Web)Spring Boot 应用程序的上下文中使用 Spring Data Neo4J 版本 5(SDN5)。对于集成测试,我想在每次测试之前导入一个定义的数据集,以获得 graph-db 的初始起点(夹具),但我不知道如何加载它。有人知道该怎么做吗?

我正在使用 neo4j 3.4.3、SDN5、Spring Boot 2.0、JUnit 5.1。

我通常通过集成测试对嵌入式实例运行和执行

@ExtendWith(SpringExtension.class)
@DataNeo4jTest(
    excludeFilters = @ComponentScan.Filter(
        type = FilterType.ASSIGNABLE_TYPE, value = ApplicationRunner.class
    )
)
@ComponentScan(basePackageClasses = {TransformationService.class})
@ActiveProfiles("test")
class Neo4jAgentAutomatonTest {
  @Test
  void getStates() {
    ...
  }
}

标签: javaspringspring-bootneo4jspring-data-neo4j

解决方案


a)当您还添加neo4j-ogm-test到您的项目时,它会为您提供TestUtils类。此类具有readCQLFile解析文件并返回密码查询的方法。

b)您也可以在没有这种依赖关系的情况下自行读取文件。

最后,您在类中添加一个SessionFactory自动装配的依赖项并执行生成的查询

class Test {

  @Autowired
  private SessionFactory sessionFactory;

  @Before
  public void setUp() {
    Session session = sessionFactory.openSession();
    session.query(               
         TestUtils.readCQLFile("<filePath>").toString(), emptyMap());
    // ....
  }
}

推荐阅读