Вам необходимо настроить тестовую службу хранилища данных для текущего потока. В основном вы можете сделать это:
private static void testServerCallBack() {
LocalServiceTestHelper helper =
new LocalServiceTestHelper(new LocalDatastoreServiceTestConfig());
helper.setUp();
Contacts contacts = new Contacts("this is", "awesome");
greetingServiceImpl.saveContact(contacts);//line:14
}
Это инициализирует службу базы данных (подделка, только для тестирования) для только для этого метода .
или лучше вы можете сделать:
private final LocalServiceTestHelper helper =
new LocalServiceTestHelper(new LocalDatastoreServiceTestConfig());
@Before
public void setUp() {
helper.setUp();
}
@After
public void tearDown() {
helper.tearDown();
}
Таким образом, служба баз данных будет работать со всеми методами тестирования.
Обратите внимание, что если вы используете разные потоки для доступа к БД, вы получите отдельную базу данных для каждого потока. Это не то, что вы хотите, скорее всего. Я имею в виду helper.setUp()
, но не устанавливайте новую отдельную службу базы данных для текущего потока, и все данные, хранящиеся в этой базе данных, будут доступны только из текущего потока.
Подробнее см .: http://code.google.com/appengine/docs/java/tools/localunittesting.html