У меня есть код, который я развертываю в Google App Engine — Java (GAE/J), в котором используется расширение URLFetchService
. Я хотел бы использовать JUnit для тестирования этого кода. Судя по документации по тестированию, я должен был тест, который использует их класс LocalURLFetchServiceTestConfig
ПРИМЕРНО следующим образом:
public class MyRemoteServiceTests {
private static final LocalURLFetchServiceTestConfig urlConfig = new LocalURLFetchServiceTestConfig();
private static final LocalServiceTestHelper helper =
new LocalServiceTestHelper(urlConfig);
@Before
public void setUp() throws Exception {
service = new SampleService();
helper.setUp();
}
@After
public void tearDown() throws Exception {
service = null;
helper.tearDown();
}
@Test
public void testThatCallsCodeThatUsesUrlFetch() {
Object data = service.getRemoteDataUsingUrlFetch("foo", "bar");
Assert.assertNotNull(data);
}
}
Я обнаружил, что этот тест продолжает давать сбои, несмотря на использование помощника, как это предлагается в документации GAE/J по тестированию: The API package 'urlfetch' or call 'Fetch()' was not found.
.
Я предполагал, что использование помощника каким-то образом настроит среду GAE таким образом, что когда я вызываю URLFetchServiceFactory.getURLFetchService()
из моего метода getRemoteDataUsingUrlFetch
, возвращаемый интерфейс будет экземпляром LocalURLFetchService
, который просто будет работать, но, похоже, это НЕ так.
- Как я могу протестировать этот код?
- Я что-то пропустил? (Я новичок в GAE...)
- Должен ли я реорганизовать мой
getRemoteDataUsingUrlFetch
, чтобы он не использовалURLFetchServiceFactory.getURLFetchService()
, потому что это делает его непроверяемым локально??? (Звучит так, будто это было бы действительно отстойно...)
Любая помощь/предложения высоко ценится!