我已按照http://neo4j.com/docs/stable/server-plugins.html的指导原则为Neo4j编写了服务器扩展 . 我为一些内部方法编写了单元测试,但是如果可能的话我还想测试REST接口 .
http://neo4j.com/docs/stable/_testing_your_extension.html似乎只展示了如何测试非托管扩展,但我正在寻找与托管扩展非常类似的东西 . 有什么指针吗?
我知道如何将扩展加载到服务器并使用 curl
进行查询(如下所示),但是当出现问题时,这不是一个有趣的调试周期 .
curl -X POST -v http://localhost:7474/db/data/ext/NeoPlugin/graphdb/myExt \
-H "Content-Type: application/json" \
-d '{"argFoo": "ACTED_IN", "argBar": ["0", "10"]}'
更新:我遇到的主要(或仅仅是第一个)部分正在启动一个包含托管扩展的轻量级测试REST服务器 . 我想一旦有了服务器,我可以使用各种策略查询它并检查结果 .
2 回答
如果我错了,请纠正我,但这听起来像是关于测试RESTful API的更普遍的问题 .
由于您已经标记了junit,因此您可能需要考虑像restfuse这样的JUnit的RESTful API测试扩展 . 如果您已经使用neo4j提供的线束测试了非托管扩展,那么这可能是最合适的 .
RESTful测试可能看起来像这样:
对于更多的“零售”测试而不是“批发”程序测试,我倾向于在Chrome上使用Postman扩展,这使得制作请求和检查结果非常容易(想想一个更简单的卷曲界面,你现在正在使用) .
最后,FWIW还有其他测试RESTful API的方法 . 选择您喜欢的技术或堆栈,无论是frisby on javascript还是vREST .
它在文档中有点隐藏,要么使用
ServerBuilder
(它位于org.neo4j.app:neo4j-server:test-jar
)中启动CommunityNeoServer,要么使用此处记录的新测试工具:http://neo4j.com/docs/stable/_testing_your_extension.html测试工具包提供了一种机制,可以使用自定义配置和您选择的扩展来启动Neo4j实例 . 它还提供了指定数据夹具的机制,以便在启动Neo4j时包含 .
用法示例 .