【问题标题】:How to load fixture dataset for integration test in spring data neo4j (SDN5)如何在 spring data neo4j (SDN5) 中加载夹具数据集以进行集成测试
【发布时间】:2019-01-04 11:15:54
【问题描述】:

我想在一个项目中编写集成测试,该项目在(非 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() {
    ...
  }
}

【问题讨论】:

标签: java spring spring-boot neo4j spring-data-neo4j


【解决方案1】:

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());
    // ....
  }
}

【讨论】:

  • 如何从现有数据库中获取 CQL 文件转储,然后使用 TestUtils 导入?
  • 好的。不知道它是您正在谈论的完整数据库,但正在考虑一组测试数据。我从未使用过密码转储工具,但你可以试试这个:github.com/jexp/neo4j-shell-tools#cypher-export
猜你喜欢
  • 1970-01-01
  • 2021-04-15
  • 1970-01-01
  • 2020-06-11
  • 1970-01-01
  • 1970-01-01
  • 2016-05-02
  • 2013-03-18
  • 2021-05-02
相关资源
最近更新 更多