"Q js is undefined." 在测试方法(karma+jasmine)中尝试解决 aurelia-breeze 的承诺时

"Q js is undefined." while trying to resolve promise from aurelia-breeze in test method(karma+jasmine)

在 aurelia(typescript + breeze) 应用程序。

使用的测试框架是karma+jasmine

aurelia-breeze 包的版本是 1.0.0

Aurelia breeze makes use of es promise resolver instead of Q.js, but the test method is searching for Q.js to resolve the promise returned from breeze.

我已尝试将 Q 库添加到 spec 文件中的 window 对象。但是 breeze.debug.js 试图在 spec 文件中设置之前从 window 对象访问 Q js。

这没有解决问题。

请帮我解决这个问题。

像这样的东西应该可以工作:

import {configure as configureAureliaBreeze} from 'aurelia-breeze/index';
import {Container} from 'aurelia-dependency-injection';

const container = new Container();
configureAureliaBreeze({ container, globalResources: () => {} });

// ... tests ...

Breeze 的承诺取决于 Q,jQuery 的 ajax。 Aurelia-breeze 分别使用 ES6 promises 和 aurelia http-client 填充这些依赖项。上面的代码有效地模拟了当 运行 你的 aurelia 应用程序时 .plugin('aurelia-breeze') 调用中会发生什么。

https://github.com/jdanyow/aurelia-breeze/blob/master/src/index.js#L15-L16