问题标签 [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.
requirejs - Squirejs 导致随机测试间歇性失败或根本不运行
我们使用 Karma 和 Mocha 以及 Squire 来模拟使用 RequireJs 加载的依赖项。没有 Squire,我们的测试运行良好,但是一旦我们初始化 Squire 对象,一切都开始崩溃:
我们发现有时 Karma 报告没有运行测试(即使在测试函数中设置的断点会被命中),有时它会报告不应该失败的随机错误。业力只是有点疯狂。
我如何使用 Squire 而不会让我的测试变得疯狂?
javascript - Squire 正在打破其他测试
我正在使用 Karma、Jasmine、Jasmine.Async、Sinon 和 Chai。
好消息……这个测试工作正常。依赖项被嘲笑,间谍被调用,故意破坏测试对象会导致测试失败。
坏消息......以前很好的其他测试现在因奇怪的原因而失败。例如:
Error: Backbone.history has already been started
和
TypeError: 'undefined' is not an object (evaluating 'Backbone.Validation.mixin')
如果我注释掉片段
然后其他测试再次工作。我以前也发生过这样的事情,通常是因为 sinon mock 没有得到恢复。这个injector.clean()
电话似乎没有提供我所希望的灵丹妙药。
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 一起使用。一个小例子将非常有用。
javascript - Squire.js 在使用 store 时不替换假依赖
我正在尝试将 Squire.js 作为 RequireJS 的依赖项加载器。使用完全正常的 Web 浏览器运行单元测试。我想用它store
来处理我的模拟。但无法阻止 Squire 加载实际模块。
mock
工作正常:
控制台输出
但是当我store
这样使用时:
真正的使用并运行:
Squire 在文档的首页上说这是可以的。使用来自 Github 的最新版本的 Squire.js,以及来自 requirejs.org 的最新 RequireJS。我究竟做错了什么?
javascript - 使用 Squire.js 注入依赖项时未执行 Jasmine 规范
我正在尝试为 Backbone 视图运行一些 Jasmine 单元测试,模拟 Squire 中的依赖项。
我的视图的依赖项是一个Baseview
,一个 ICanHaz 模板和一个 i18n 翻译。
在定义 Squire 和 Backbone 之后,我模拟了依赖项,然后使用 Squire 注入器来请求我的视图。但是,当我通过 Grunt 运行测试时,我收到警告消息:
警告:未执行规范,是否存在配置错误?使用 --force 继续。
这是我的规格:
有谁知道为什么我的基本单元测试没有被选中?
requirejs - 如何在 karma 中的每个测试之前(或之后)运行代码
我希望将 squire.js 与 karma 一起使用,并希望在运行下一个测试套件(我正在使用 jasmine)之前执行 squire.clean() 来清除所有模拟,但我看不到配置 karma 的方法在测试套件之前(或之后)运行某些东西。
有办法吗?
node.js - 在节点上使用 RequireJS 和 Mocha 和 SquireJS
我正在尝试在节点中使用 RequireJS,但发现路径问题存在困难。
这是一个返回“foo”的简单 foo 方法
这是需要 foo 的 bar,但它仅在指定相对路径时才有效。这就是它应该的样子吗?
在 mocha 测试中事情变得更加棘手:
- 加载 foo 和 bar 需要 __dirname 解决方法。
- bar 的异步加载失败(参见测试 3 和 4)。
- 导入 Squire 需要准确的路径,因为它是使用 npm install 安装的,但不符合标准 node require 语法并且不包括 amdefine 解决方法:
这是测试代码:
我已经在 github https://github.com/itaifrenkel/node-requirejs-example上设置了一个复制品
javascript - 如何使用 squire 模拟内联 requirejs 依赖项以进行单元测试?
我将 requirejs 与内联要求一起使用,例如:
在我的特殊情况下,我不能包含anotherDep
在定义中。
在使用 mocha 进行测试时,我有一个这样的测试用例:
失败是因为直接anotherDep
调用require
而不是squire.require
. 解决方法是require
在全局范围内替换,
这有效(请注意,squire.require
必须以squire
某种方式绑定到对象,我使用下划线来执行此操作),但由于时间原因仍不会调用间谍。测试也必须更改为
有没有更好的办法?如果没有,希望这能为遇到同样问题的其他人提供解决方案。
javascript - 如何在单元测试中模拟 RequireJs 加载器插件响应
我试图测试的代码依赖于 RequireJs loader plugins。requirejs/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
requirejs - Squire Mock Model 不适用于列表
在我的 Squire 规范中,我正在模拟我的控制器采用的模型。控制器动态地将对象列表添加到模型中,但是当规范运行期望时它不存在。它在将 String 参数动态添加到模型时起作用。