根据available documentation应用引擎测试助手类LocalServiceTestHelper
可以模拟ApiProxy.getCurrentEnvironment().getRemainingMillis()
的结果。
只要代码在创建帮助程序的同一个线程中运行,但是当测试是多线程的(例如测试延迟任务时),第二个线程将不会使用模拟响应
如何让helper类在任务队列任务中设置ApiProxy.getCurrentEnvironment().getRemainingMillis()
的返回值?
答案 0 :(得分:1)
调用LocalServiceTestHelper.setUp()
只会在您找到的当前主题中设置您的环境。
调用setUp()
后,您应该能够使用ApiProxy.Environment testEnv = ApiProxy.getCurrentEnvironment()
获取刚刚设置的环境;将testEnv
包裹在ApiProxy.EnvironmentFactory
的实现中,该实现始终返回{{1} }}。然后,调用testEnv
,传入新工厂。
ApiProxy.setEnvironmentFactory
这应该导致在所有线程中使用相同的环境。
这种方法未经测试,但根据文档看起来很合理。