java - 如何在 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() {
...
}
}
解决方案
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());
// ....
}
}
推荐阅读
- jenkins - AttributeError:'DESCRIPTOR',在 Jenkins 服务器上使用 python 3.6 模块 protobuf
- php - 将折扣添加到 woocomerce 购物车页面 INCL。税
- python - Python函数未执行
- javascript - react native:如何增加字体?
- node.js - 如何在节点 js 中根据用户更新和删除评论?
- django - 为什么'bool'对象不可调用
- mongodb - How to update field name in array in document(Mongo)?
- python-3.x - ModuleNotFoundError:没有名为“scripts.trio_ircproxy”的模块
- c - 使用 postgres ecpg 创建和调用存储过程
- php - 你如何在 php 中验证 html unicode