Intellij idea Spring数据neo4j JUnit4设置

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”}) @

我承认我对Java的工作方式完全是一个新手,我完全无法尝试运行一个简单的单元测试

我正在构建一个数据访问库,并希望对其进行单元测试。我使用的是Spring数据Neo4j 4.0.0.BUILD-SNAPSHOT,因为我需要连接到现实世界中的远程Neo4j服务器

在与错误斗争了一整天之后,我已经到了一个测试班的地步:

@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*示例