是的,您像其他单元测试工具类一样对其进行配置,并将其传递给您的测试 queue.xml 的路径,我的恰好位于 /src/test/resources 中(maven 项目的常用位置)
这是我的基本junit测试类的一个片段......
static {
dir = System.getProperty("user.dir") + "/src/test/resources/queue.xml";
}
private final LocalServiceTestHelper helper = new LocalServiceTestHelper(
new LocalDatastoreServiceTestConfig(),
new LocalTaskQueueTestConfig().setQueueXmlPath(dir));
然后你可以做类似的事情(如果这与上下文无关,很抱歉,但它应该给你这个想法......而且它很时髦,所以它可能看起来很奇怪)
//do something that might trigger a queue to run...
NotificationService.getInstance().doNotification(interaction)
LocalTaskQueue taskQueue = LocalTaskQueueTestConfig.getLocalTaskQueue()
Map allQueues = taskQueue.getQueueStateInfo()
QueueStateInfo mailQueue = allQueues.get(EmailTaskQueue.MAIL_QUEUE)
assert mailQueue.getCountTasks() == 1
有关 Rick Mangi 评论的更多详细信息。如果您收到如下错误:
java.lang.NoClassDefFoundError: org/mortbay/xml/XmlParser
将此添加到您的 pom.xml 中:
<dependency>
<groupId>com.google.appengine</groupId>
<artifactId>appengine-tools-sdk</artifactId>
<version>${gae.version}</version>
</dependency>