TestUtils 模块

class TestUtils()

TestUtils 提供了一些通用的测试实用程序。它可以同时用于 mochitests、浏览器 mochitests 和 xpcshell 测试。

static TestUtils.consoleMessageObserved(checkFn)

等待观察到与指定检查函数匹配的控制台消息。

参数:
  • checkFn (function) – [可选] 使用消息作为其参数调用,如果通知是预期的,则应返回 true,否则如果应忽略它并且应继续监听,则返回 false。

返回值:

Promise

static TestUtils.listenForConsoleMessages()

监听任何控制台消息(通过 console.* 记录)并在返回的函数被调用时返回它们。

返回值:

function – 返回一个异步函数,当被调用时,它将等待一个 tick,然后停止监听任何更多的控制台消息,最后将返回已接收的消息。

static TestUtils.screenshotArea(eltOrRect, win)

截取某个区域的屏幕截图并将其作为数据 URL 返回。

参数:
  • eltOrRect (Element|Rect) – 要截屏的 DOM 节点或矩形({left, top, width, height})。

  • win (Window) – 当前窗口。

static TestUtils.topicObserved(topic, checkFn)

等待观察到指定的主题。

参数:
  • topic (string) – 要观察的主题。

  • checkFn (function) – [可选] 使用 (subject, data) 作为参数调用,如果通知是预期的,则应返回 true,否则如果应忽略它并且应继续监听,则返回 false。如果未指定,则指定主题的第一个通知将解析返回的 promise。

返回值:

Promise

static TestUtils.waitForCondition(condition, msg, interval, maxTries)

将轮询条件函数,直到它返回 true。

参数:
  • condition – 必须返回 true 或 false 的条件函数。如果条件发生异常,则此函数失败并拒绝返回的 promise。该函数可以是异步函数。

  • msg – 用于描述正在等待的条件的消息。如果等待失败,此消息将用于拒绝 promise。它还用于添加分析器标记。

  • interval – 轮询条件函数的时间间隔。默认为 100 毫秒。

  • maxTries – 在放弃并拒绝(如果条件尚未返回 true)之前轮询的次数。默认为 50(对于 100 毫秒间隔,大约 5 秒)。

返回值:

Promise 使用条件函数的返回值解析。如果超时或条件发生异常,则拒绝。注意:这有意不使用 setInterval,而是使用 setTimeout。setInterval 不是 promise 安全的。

static TestUtils.waitForPrefChange(prefName, checkFn)

等待指定的首选项更改。

参数:
  • prefName (string) – 要观察的首选项。

  • checkFn (function) – [可选] 使用新的首选项值作为参数调用,如果通知是预期的,则应返回 true,否则如果应忽略它并且应继续监听,则返回 false。如果未指定,则指定主题的第一个通知将解析返回的 promise。

返回值:

Promise