首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用数据夹具时Neo4j集成测试在EOFException上失败

使用数据夹具时Neo4j集成测试在EOFException上失败
EN

Stack Overflow用户
提问于 2015-06-25 22:28:38
回答 1查看 134关注 0票数 0

我正在构建一个Neo4j (2.2.3)非托管扩展,并试图运行集成测试。按照docs中的示例,我有:

代码语言:javascript
复制
@Test
public void testInsertInitiative() throws Exception { 
    try ( ServerControls server = TestServerBuilders.newInProcessBuilder()
        .withExtension("/graph/initiative", InitiativeController.class)
        .withFixture(TestFixtures.foobar(x, y, z))
        .newServer() )
    {
        HTTP.Response response = //... I can't get this far... 
    }
} 

但是,每当我包含数据夹具时,测试就无法在

代码语言:javascript
复制
java.io.EOFException: No content to map to Object due to end of input
at org.neo4j.harness.internal.Fixtures.ensureInstallSuccessful(Fixtures.java:127)
at org.neo4j.harness.internal.Fixtures.applyTo(Fixtures.java:110)
at org.neo4j.harness.internal.InProcessServerBuilder.newServer(InProcessServerBuilder.java:75)
at org.mycompany.myproject.MyTestClass.myTest(MyTestClass.java:87)

如果我注释掉了夹具的包含,测试就会像预期的那样运行,所以问题肯定存在(也可以从堆栈跟踪.)。我已经验证了我的TestFixtures方法通过c/p‘将它放入控制台并在那里成功地执行它来生成一个有效的密码语句。我也试过用一个简单的

代码语言:javascript
复制
.withFixture("CREATE (:foo)")

也有同样的结果。

这种情况在2.2.3和2.2.2版本中都会发生,无论是否加载我的扩展都会发生。

通过几个层的调试跟踪,我发现在第109行的ClientResponse response = client.handle( req )调用中接收到的响应有一个服务器错误状态和一个空实体,我认为这将导致EOF.

但是为什么服务器出错呢?同样,I/C/P从客户端发出的调用中获取有效负载,并将其(成功地)发送到非测试服务器。

下面是我的pom依赖项:

代码语言:javascript
复制
<properties>
    <java.version>1.7</java.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <neo4j.version>2.2.3</neo4j.version>
</properties>
<dependencies>
    <dependency>
        <groupId>javax.ws.rs</groupId>
        <artifactId>javax.ws.rs-api</artifactId>
        <version>2.0</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.neo4j</groupId>
        <artifactId>neo4j</artifactId>
        <version>${neo4j.version}</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.neo4j.app</groupId>
        <artifactId>neo4j-server</artifactId>
        <version>${neo4j.version}</version>
        <type>test-jar</type>
    </dependency>
    <dependency>
        <groupId>org.neo4j.test</groupId>
        <artifactId>neo4j-harness</artifactId>
        <version>${neo4j.version}</version>
        <scope>test-jar</scope>
    </dependency>
    <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-mapper-asl</artifactId>
        <version>1.9.7</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.11</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.hamcrest</groupId>
        <artifactId>hamcrest-all</artifactId>
        <version>1.3</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>com.googlecode.lambdaj</groupId>
        <artifactId>lambdaj</artifactId>
        <version>2.3.3</version>
    </dependency>

</dependencies>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-26 08:58:44

摆脱这种依赖将使SSCCE中的测试通过:

代码语言:javascript
复制
    <dependency>
        <groupId>javax.ws.rs</groupId>
        <artifactId>javax.ws.rs-api</artifactId>
        <version>2.0</version>
        <scope>provided</scope>
    </dependency>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31061897

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档