Intellij idea Spring数据neo4j JUnit4设置
我承认我对Java的工作方式完全是一个新手,我完全无法尝试运行一个简单的单元测试 我正在构建一个数据访问库,并希望对其进行单元测试。我使用的是Spring数据Neo4j 4.0.0.BUILD-SNAPSHOT,因为我需要连接到现实世界中的远程Neo4j服务器 在与错误斗争了一整天之后,我已经到了一个测试班的地步:Intellij idea Spring数据neo4j JUnit4设置,intellij-idea,gradle,neo4j,junit4,spring-data-neo4j-4,Intellij Idea,Gradle,Neo4j,Junit4,Spring Data Neo4j 4,我承认我对Java的工作方式完全是一个新手,我完全无法尝试运行一个简单的单元测试 我正在构建一个数据访问库,并希望对其进行单元测试。我使用的是Spring数据Neo4j 4.0.0.BUILD-SNAPSHOT,因为我需要连接到现实世界中的远程Neo4j服务器 在与错误斗争了一整天之后,我已经到了一个测试班的地步: @RunWith(SpringJUnit4ClassRunner.class) @ComponentScan(basePackages={“org.mystuff.data”}) @
@RunWith(SpringJUnit4ClassRunner.class)
@ComponentScan(basePackages={“org.mystuff.data”})
@ContextConfiguration(类={Neo4jTestConfiguration.class})
公共类人员安置测试{
@自动连线
个人知识库;
受保护的GraphDatabaseService graphDb;
@以前
public void setUp()引发异常{
graphDb=newtestGraphDatabaseFactory().newNompanConstanentDatabase();
}
@之后
公共无效拆卸(){
graphDb.shutdown();
}
@试验
public void testCreatePerson()引发异常{
assertNotNull(personRepository);
人员p=新人员(“测试”、“用户”);
personRepository.save(p);
}
}
Neo4jTestConfiguration.java
@配置
@EnableNeo4jRepositories(basePackages=“org.mystuff.data”)
@启用事务管理
公共类Neo4jTestConfiguration扩展了Neo4jConfiguration{
@豆子
public SessionFactory getSessionFactory(){
返回新的SessionFactory(“org.mystuff.data”);
}
@豆子
公共Neo4jServer Neo4jServer(){
//在这里返回什么?我要内存数据库
返回null;
}
@豆子
@范围(value=“session”,proxyMode=ScopedProxyMode.TARGET\u类)
公共会话getSession()引发异常{
返回super.getSession();
}
}
运行测试时,personRepository.save()抛出异常“没有为作用域“会话”注册作用域”
我不知道我是否需要配置类,但是如果没有它,我的测试类将无法工作,因为Spring需要@ContextConfiguration,我需要Spring提供的所有DI niceness(除其他外)
如何让我的测试与Spring一起工作?您可以使用
InProcessServer
这是一个内存数据库:
@Bean
public Neo4jServer neo4jServer() {
return new InProcessServer();
}
省略会话范围,因为测试未在web容器中运行。例如:
这将需要本问题中所述的依赖关系:
在测试类PersonRepositoryTest
中,您不需要构造数据库实例,测试将针对相同的InProcessServer
运行。
下面是一个示例:您可以使用
InProcessServer
,它是内存中的数据库:
@Bean
public Neo4jServer neo4jServer() {
return new InProcessServer();
}
省略会话范围,因为测试未在web容器中运行。例如:
这将需要本问题中所述的依赖关系:
在测试类PersonRepositoryTest
中,您不需要构造数据库实例,测试将针对相同的InProcessServer
运行。
下面是一个示例:您可以使用
InProcessServer
,它是内存中的数据库:
@Bean
public Neo4jServer neo4jServer() {
return new InProcessServer();
}
省略会话范围,因为测试未在web容器中运行。例如:
这将需要本问题中所述的依赖关系:
在测试类PersonRepositoryTest
中,您不需要构造数据库实例,测试将针对相同的InProcessServer
运行。
下面是一个示例:您可以使用
InProcessServer
,它是内存中的数据库:
@Bean
public Neo4jServer neo4jServer() {
return new InProcessServer();
}
省略会话范围,因为测试未在web容器中运行。例如:
这将需要本问题中所述的依赖关系:
在测试类PersonRepositoryTest
中,您不需要构造数据库实例,测试将针对相同的InProcessServer
运行。
下面是一个示例:我似乎没有可用的InProcessServer。这是从哪里来的?找到了-我需要在Gradle testCompile定义中使用spring-data-neo4j这项工作现在非常出色,谢谢。示例项目是一个很好的信息来源,非常有帮助。欢迎。在我看来没有可用的InProcessServer中还有几个sdn4*示例。这是从哪里来的?找到了-我需要在Gradle testCompile定义中使用spring-data-neo4j这项工作现在非常出色,谢谢。示例项目是一个很好的信息来源,非常有帮助。欢迎。在我看来没有可用的InProcessServer中还有几个sdn4*示例。这是从哪里来的?找到了-我需要在Gradle testCompile定义中使用spring-data-neo4j这项工作现在非常出色,谢谢。示例项目是一个很好的信息来源,非常有帮助。欢迎。在我看来没有可用的InProcessServer中还有几个sdn4*示例。这是从哪里来的?找到了-我需要在Gradle testCompile定义中使用spring-data-neo4j这项工作现在非常出色,谢谢。示例项目是一个很好的信息来源,非常有帮助。欢迎。中还有几个sdn4*示例