を利用する 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()
か??? (それはさすがにヤバそうです…)
どんな助け/提案も大歓迎です!