任务队列任务中的单元测试请求超时

时间:2014-08-19 07:32:15

标签: java google-app-engine unit-testing task-queue

根据available documentation应用引擎测试助手类LocalServiceTestHelper可以模拟ApiProxy.getCurrentEnvironment().getRemainingMillis()的结果。

只要代码在创建帮助程序的同一个线程中运行,但是当测试是多线程的(例如测试延迟任务时),第二个线程将不会使用模拟响应

如何让helper类在任务队列任务中设置ApiProxy.getCurrentEnvironment().getRemainingMillis()的返回值?

1 个答案:

答案 0 :(得分:1)

调用LocalServiceTestHelper.setUp()只会在您找到的当前主题中设置您的环境。

调用setUp()后,您应该能够使用ApiProxy.Environment testEnv = ApiProxy.getCurrentEnvironment()获取刚刚设置的环境;将testEnv包裹在ApiProxy.EnvironmentFactory的实现中,该实现始终返回{{1} }}。然后,调用testEnv,传入新工厂。

ApiProxy.setEnvironmentFactory

这应该导致在所有线程中使用相同的环境。

这种方法未经测试,但根据文档看起来很合理。