java mock返回mock:为域逻辑的单元测试模拟neo4j(数据库)对象
我正在单元测试由neo4j数据库支持的域逻辑和域对象。大多数测试需要模拟neo4jGraphDatabaseService
、各种Nodes
和各种Relationships
。一些模拟方法返回这些模拟对象。例如,getReferenceNode()调用返回模拟节点,或者getSingleRelationship()调用返回其getEndNode()依次返回模拟节点的模拟关系
我关心的是返回mock的mock的数量。通常不建议这样做。这无疑会使测试设置复杂化,并导致非常脆弱的测试,因为需要模拟neo4j的许多功能层
在单元测试neo4j支持的域逻辑时,有没有办法避免这种情况
# 1 楼答案
您可以尝试使用一个每次创建/刷新的临时数据库。如果您需要采样数据,您可以:
# 2 楼答案
我正在使用Maven、Spring数据源,并使用无常图形数据库对我的应用程序进行单元测试。 因为设置起来很难,所以我做了如下工作:
在我的应用程序上下文中。xml I初始化了graphDatabaseService:
在我的pom里。xml我必须添加内核测试:
否则,无常图形数据库将不可用
最后,我可以使用干净的图形数据库evrytime:
我发现设置比使用常规方法快得多。把一切都记在记忆里似乎会有回报