Я создаю приложение Spring с использованием базы данных Neo4j. У меня есть некоторые сервисы, которые реализуют базовые функции базы данных, такие как сохранение пользователя или поиск пользователя по его имени пользователя. Поскольку я реализовал некоторые ограничения, например, что невозможно удалить не существующего пользователя, я хочу проверить свою службу. Мое желание будет иметь тест, который создает временный графический файл Neo4j, как описано в http://neo4j.com/docs/stable/tutorials-java-unit-testing.html. Но, кроме того, я хочу, чтобы автосервис мой UserService в тест, выполнять некоторые операции во временной базе данных и снова уничтожать временную базу данных. Я ожидаю, что смогу решить эту проблему с помощью TestConfigurations, но поскольку я не испытываю опыта Spring или Neo4j, все не так просто.Временная база данных Neo4j для тестирования сервисов
У меня есть следующая конфигурация
@Configuration
@EnableNeo4jRepositories(basePackages = "de.myapp")
@EnableTransactionManagement
public class UserTestConfiguration extends Neo4jConfiguration{
@Bean
public UserService userService() {
return new UserBean();
}
@Bean
public Neo4jServer neo4jServer() {
//This is probably wrong since i really want to connect to the impermanent db
return new RemoteServer("http://localhost:7474");
}
@Bean
public SessionFactory getSessionFactory() {
return new SessionFactory("de.myapp");
}
}
И следующий тест-класс
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes=TSUserTestConfiguration.class)
public class TSUserBeanTest {
private GraphDatabaseService graphDb;
@Autowired
private TSUserService userService;
@Before
public void prepareTestDatabase() {
graphDb = new TestGraphDatabaseFactory().newImpermanentDatabase();
}
@After
public void destroyTestDatabase() {
graphDb.shutdown();
}
@Test
public void createUserTest() {
TSUser user = new TSUser("TestUser", "TestEmail");
//This should create the user in the impermanent db
userService.persistUser(user);
//assert stuff here
}
}
Однако я получаю NullPointer исключения для graphDB в разрушающем и я даже не уверен, что если Я на правильном пути. Может быть, у кого-то есть пример для этого сценария? Даже лучший способ интеграции - проверка моего сервиса на временном db приветствуется.
Спасибо и привет Urr4
Просьба указать трассировку стека –