Я модульно тестирую логику домена и объекты домена, поддерживаемые базой данных neo4j. Большинство из этих тестов должны имитировать neo4j GraphDatabaseService
, различные Nodes
и различные Relationships
. Некоторые из фиктивных методов возвращают эти фиктивные объекты. Например, вызов getReferenceNode() возвращает фиктивный Node, а вызов getSingleRelationship() возвращает фиктивное отношение, чье getEndNode(), в свою очередь, возвращает фиктивный Node.
Меня беспокоит количество насмешек, возвращающих насмешки, возвращающих насмешки. Обычно это не рекомендуется. Это, безусловно, усложняет тестовую настройку и приводит к довольно хрупким тестам, потому что нужно имитировать так много слоев функциональности neo4j.
Есть ли способ избежать этого при модульном тестировании логики домена, поддерживаемой neo4j?