问题标签 [squirejs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
953 浏览

requirejs - Squirejs 导致随机测试间歇性失败或根本不运行

我们使用 Karma 和 Mocha 以及 Squire 来模拟使用 RequireJs 加载的依赖项。没有 Squire,我们的测试运行良好,但是一旦我们初始化 Squire 对象,一切都开始崩溃:

我们发现有时 Karma 报告没有运行测试(即使在测试函数中设置的断点会被命中),有时它会报告不应该失败的随机错误。业力只是有点疯狂。

我如何使用 Squire 而不会让我的测试变得疯狂?

0 投票
2 回答
1195 浏览

javascript - Squire 正在打破其他测试

我正在使用 Karma、Jasmine、Jasmine.Async、Sinon 和 Chai。

好消息……这个测试工作正常。依赖项被嘲笑,间谍被调用,故意破坏测试对象会导致测试失败。

坏消息......以前很好的其他测试现在因奇怪的原因而失败。例如: Error: Backbone.history has already been startedTypeError: 'undefined' is not an object (evaluating 'Backbone.Validation.mixin')

如果我注释掉片段

然后其他测试再次工作。我以前也发生过这样的事情,通常是因为 sinon mock 没有得到恢复。这个injector.clean()电话似乎没有提供我所希望的灵丹妙药。

0 投票
1 回答
4709 浏览

unit-testing - 带有 Jasmine 和 RequireJS 的 Squire.js 示例

我想写JS测试。生产代码是用 RequireJS 编写的。我找到了一个名为 Squire.js 的测试库:https ://github.com/iammerrick/Squire.js/

来自 Squire.js 网站

Run 生成一个函数,该函数将接收完成的回调并在测试函数完成后执行它。对于使用回调处理异步的框架特别有用。这是 Mocha.js 的示例。Jasmine 可以使用 Jasmin.Async 提供这种回调方法。”

我不知道如何将它与 Jasmine async 一起使用。一个小例子将非常有用。

0 投票
1 回答
1276 浏览

javascript - Squire.js 在使用 store 时不替换假依赖

我正在尝试将 Squire.js 作为 RequireJS 的依赖项加载器。使用完全正常的 Web 浏览器运行单元测试。我想用它store来处理我的模拟。但无法阻止 Squire 加载实际模块。

mock工作正常:

控制台输出

但是当我store这样使用时:

真正的使用并运行:

Squire 在文档的首页上说这是可以的。使用来自 Github 的最新版本的 Squire.js,以及来自 requirejs.org 的最新 RequireJS。我究竟做错了什么?

0 投票
1 回答
1501 浏览

javascript - 使用 Squire.js 注入依赖项时未执行 Jasmine 规范

我正在尝试为 Backbone 视图运行一些 Jasmine 单元测试,模拟 Squire 中的依赖项。

我的视图的依赖项是一个Baseview,一个 ICanHaz 模板和一个 i18n 翻译。

在定义 Squire 和 Backbone 之后,我模拟了依赖项,然后使用 Squire 注入器来请求我的视图。但是,当我通过 Grunt 运行测试时,我收到警告消息:

警告:未执行规范,是否存在配置错误?使用 --force 继续。

这是我的规格:

有谁知道为什么我的基本单元测试没有被选中?

0 投票
1 回答
1526 浏览

requirejs - 如何在 karma 中的每个测试之前(或之后)运行代码

我希望将 squire.js 与 karma 一起使用,并希望在运行下一个测试套件(我正在使用 jasmine)之前执行 squire.clean() 来清除所有模拟,但我看不到配置 karma 的方法在测试套件之前(或之后)运行某些东西。

有办法吗?

0 投票
1 回答
1206 浏览

node.js - 在节点上使用 RequireJS 和 Mocha 和 SquireJS

我正在尝试在节点中使用 RequireJS,但发现路径问题存在困难。

这是一个返回“foo”的简单 foo 方法

这是需要 foo 的 bar,但它仅在指定相对路径时才有效。这就是它应该的样子吗?

在 mocha 测试中事情变得更加棘手:

  1. 加载 foo 和 bar 需要 __dirname 解决方法。
  2. bar 的异步加载失败(参见测试 3 和 4)。
  3. 导入 Squire 需要准确的路径,因为它是使用 npm install 安装的,但不符合标准 node require 语法并且不包括 amdefine 解决方法:

这是测试代码:

我已经在 github https://github.com/itaifrenkel/node-requirejs-example上设置了一个复制品

0 投票
1 回答
1022 浏览

javascript - 如何使用 squire 模拟内联 requirejs 依赖项以进行单元测试?

我将 requirejs 与内联要求一起使用,例如:

在我的特殊情况下,我不能包含anotherDep在定义中。

在使用 mocha 进行测试时,我有一个这样的测试用例:

失败是因为直接anotherDep调用require而不是squire.require. 解决方法是require在全局范围内替换,

这有效(请注意,squire.require必须以squire某种方式绑定到对象,我使用下划线来执行此操作),但由于时间原因仍不会调用间谍。测试也必须更改为

有没有更好的办法?如果没有,希望这能为遇到同样问题的其他人提供解决方案。

0 投票
1 回答
426 浏览

javascript - 如何在单元测试中模拟 RequireJs 加载器插件响应

我试图测试的代码依赖于 RequireJs loader pluginsrequirejs/text示例:

对于特定的单元测试,我试图模拟响应text!templates/foo并覆盖与测试相关的响应:

我看过 RequireJs 依赖模拟解决方案,尤其是Squire.js,但似乎它们都适合模拟常规依赖而不是插件响应。

我还查看了像sinon这样的存根库,可能会替换实际require调用,但这似乎有问题。

推荐的做法是什么?text我不想在我的 requirejs 配置中用模拟插件替换整个插件,只是在特定测试中覆盖它的一些响应。

我的设置是 node+mocha+requirejs

编辑

请参阅此示例小提琴项目以查看我与 Squire 的问题:

http://runnable.com/VUBoI0ex6v9Gs-BJ/squirejs-with-plugins-for-node-js-and-hello-world

0 投票
1 回答
52 浏览

requirejs - Squire Mock Model 不适用于列表

在我的 Squire 规范中,我正在模拟我的控制器采用的模型。控制器动态地将对象列表添加到模型中,但是当规范运行期望时它不存在。它在将 String 参数动态添加到模型时起作用。