В моем приложении есть набор DAO, которые я внедряю в свой прикладной уровень. Для приемочного теста, который я пишу, я хочу предварительно загрузить хранилище данных dev_server с данными, поэтому я использую ту же конфигурацию Spring в своем тесте JUnit (используя аннотацию @ContextConfiguration), чтобы вставить экземпляр соответствующего DAO в мой тест. Когда я на самом деле иду, чтобы сохранить некоторые данные, например:
dao.add(entity)
Я получаю страшное "Нет среды API, зарегистрированной для этой темы."
Caused by: java.lang.NullPointerException: No API environment is registered for this thread.
at com.google.appengine.api.datastore.DatastoreApiHelper.getCurrentAppId(DatastoreApiHelper.java:108)
at com.google.appengine.api.datastore.DatastoreApiHelper.getCurrentAppIdNamespace(DatastoreApiHelper.java:118)
....
Вероятно, это связано с тем, что мой контрольный пример не прочитал в GAE application-web.xml подробности приложения (хотя я предполагаю, что здесь я действительно могу ошибаться); поэтому он не знает, что записать в то же хранилище данных, в которое приложение, запущенное на сервере dev_server, выполняет чтение / запись.
Как я могу заставить мой тест "указывать" на то же хранилище данных, что и приложение? Есть ли какой-нибудь механизм источника данных, который я могу внедрить как в приложение, так и в тест? Есть ли способ заставить мой тест заставить API хранилища данных прочитать нужный конфиг?