Java 使用GAE/J URLFACHTServiceFactory.GetURLFACHTService()的代码的JUnit测试
我有一些代码正在部署到GoogleAppEngine-Java(GAE/J),它利用了Java 使用GAE/J URLFACHTServiceFactory.GetURLFACHTService()的代码的JUnit测试,java,google-app-engine,junit,urlfetch,Java,Google App Engine,Junit,Urlfetch,我有一些代码正在部署到GoogleAppEngine-Java(GAE/J),它利用了URLFetchService。我想使用JUnit来测试这段代码。根据,我似乎应该有一个使用其LocalURLFetchServiceTestConfig类的测试,大致如下所示: public class MyRemoteServiceTests { private static final LocalURLFetchServiceTestConfig urlConfig = new LocalURLF
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测试文档中建议的“helper”,但该测试仍然失败:“未找到API包'urlfetch'或调用'Fetch()。
”
我假设使用“helper”会以某种方式设置GAE环境,这样当我从getRemoteDataUsingUrlFetch
方法中调用URLFetchServiceFactory.getURLFetchService()
时,返回的接口将是一个只会“工作”的LocalURLFetchService
实例但情况似乎并非如此
- 如何测试此代码
- 我错过什么了吗?(我对盖伊还很陌生…)
- 我是否必须重构我的
,以便它不使用getRemoteDataUsingUrlFetch
,因为这会使它在本地不稳定???(听起来真的很糟糕……)URLFetchServiceFactory.getURLFetchService()
非常感谢任何帮助/建议 好的,LocalURLFetchService没有像您期望的那样配置GAE。不过,这更像是从本地开发人员获取URL,然后处理内容的一种方式。(类似地,甚至LocalDatastoreService和LocalMemcacheService也在测试环境中的隔离空间上运行) 测试代码的一种方法是重构getRemoteDataUsingUrlFetch()以获取Url响应的内容。有点像,
URLFetchResponse resp = LocalURLFetchService.fetch(status, request)
getRemoteDataUsingUrlFetch(foo, bar, resp)
事实上,我的问题是没有包括文档页面上提到的另外两个JAR。RTM FTW
- appengine-local-runtime.jar
- appengine-api-stubs.jar