为什么要测试?
到目前为止,我们可以在纸上、白板上或使用类似Arrows应用程序的工具来设计数据模型。并且,可以使用这些用例来设计数据模型,其中包括节点标签、关系类型和方向以及节点和关系的属性。
我们还使用一小组测试数据实现了上述数据模型。但是,为了确保创建的图能够满足每个用例,我们还必须根据图测试用例。
测试数据模型
下面是现在应该在图中的实例模型:
接下来,我们将通过执行Cypher查询来针对图测试每个用例。
其实,我们所谓的测试就是:针对实例模型执行Cypher代码,以验证图形和查询是否支持用例。
例如,对于我们的第一个用例:
用例1:人们在电影中扮演了什么角色?
我们可以在指定电影标题的位置执行下面的查询:
MATCH (p:Person)-[:ACTED_IN]-(m:Movie)
WHERE m.title = 'Sleepless in Seattle'
RETURN p.name AS Actor
在用例描述中,您甚至可以指定预期结果应该是什么。
进行更多的测试
在浏览用例时,你可能会想到要添加到图中更多的数据来完成测试。
无论如何,用于测试用例的Cypher代码需要仔细检查其正确性。此外,必须了解,如果图形被重构(下一个模块),这些用例的Cypher代码也可能需要进行相应的修改以提高性能。
测试的第一步是进行基本测试,以确保数据模型能够匹配用例。
图测试的一个非常重要的因素是可伸缩性。如果图中包含数百万个节点或关系,这些查询将如何执行?这就是需要与Cypher开发人员合作的地方,以便在图增长时测试查询的性能。