是的,我知道Karma应该用于单元测试。但是,
我们可以使用量角器。量角器的问题在于它是为测试用户界面而设计的,因此无需使用UI就可以使用 hacky :a)为我们要测试的每个功能创建一个入口点文件加载所有正确的模块b)通过在全局窗口中访问这些模块来创建测试...
同时...... Karma拥有SystemJS支持。它还在浏览器中运行测试。将karma作为测试运行器,我们可以直接在测试中使用模块(这就是我们需要SystemJS支持的原因)。
然而,在业力测试中进行真正的HTTP调用失败。我们使用fetch API。在PostMan中工作的端点在Karma测试中失败...即使在禁用CORS(在获取中)之后也是如此。所以下面的提取调用失败了:
fetch(url, {mode: 'no-cors').then(rslt => rslt.json()) //errors out w/ no status code!
有什么想法吗? Karma的另一种解决方案也很好。使用Protractor的更优雅的黑客也可以。
更新:另一个解决方法是告诉karma启动禁用CORS的浏览器。这种方法的缺点是我们需要为我们支持的每个浏览器创建一个自定义启动器。