В моем приложении у меня есть набор 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 хранилища данных прочитать необходимую конфигурацию?