以下のように setUp() メソッドで GraphDatabaseService を作成したい場合:
private GraphDatabaseService graphDb;
@BeforeMethod
public void setUp() throws Exception {
graphDb = new TestGraphDatabaseFactory().newImpermanentDatabase();
}
エラーが発生します:
java.lang.AbstractMethodError: org.neo4j.test.impl.EphemeralFileSystemAbstraction.autoCreatePath(Ljava/io/File;)V
at org.neo4j.kernel.StoreLocker.lock(StoreLocker.java:73)
at org.neo4j.kernel.InternalAbstractGraphDatabase.create(InternalAbstractGraphDatabase.java:287)
at org.neo4j.kernel.InternalAbstractGraphDatabase.run(InternalAbstractGraphDatabase.java:227)
at org.neo4j.kernel.EmbeddedGraphDatabase.<init>(EmbeddedGraphDatabase.java:79)
at org.neo4j.test.ImpermanentGraphDatabase.<init>(ImpermanentGraphDatabase.java:78)
at org.neo4j.test.TestGraphDatabaseFactory$1.newDatabase(TestGraphDatabaseFactory.java:46)
at org.neo4j.graphdb.factory.GraphDatabaseBuilder.newGraphDatabase(GraphDatabaseBuilder.java:205)
at org.neo4j.test.TestGraphDatabaseFactory.newImpermanentDatabase(TestGraphDatabaseFactory.java:36)
at pl.piotr0123456.neo4j.operations.GraphOperationsTest.setUp(GraphOperationsTest.java:29)
これの回避策として、次を使用します。
graphDb = new TestGraphDatabaseFactory().newEmbeddedDatabase("target/testGraph/test1");
トランザクションのロールバックあり。しかし、これは良い解決策ではないと思います。
単体テストごとにクリーンなグラフをメモリ内に作成することは可能ですか?