chai-backbone

Build Status NPM Version

chai-backbone 是对 chai 断言库的扩展,它提供了一组特定于 Backbone 的断言。

使用断言与 chai 的 expectshould 断言。

依赖项

断言

触发

model.should.trigger("change", { with: [model] }).when(function() {
  model.set({ attribute: "value" });
});

这也可能进一步链接

model.should.trigger("change").and.trigger("change:attribute").when(function() {
  model.set({ attribute: "value" });
});

model.should.trigger("change").and.not.trigger("reset").when(function() {
  model.set({ attribute: "value" });
});

route.to

测试路由是否委托给正确的路由器,以及参数是否以预期的方式提取。

"page/3".should.route.to(myRouter, "openPage", { arguments: ["3"] });
"pages/3".should.not.route.to(myRouter, "openPage");
"page/3".should.route.to(myRouter, "openPage", { considering: [conflictingRouter] });

调用

此断言非常适合测试视图回调,它将重新绑定视图事件以测试 DOM 事件

view.should.call('startAuthentication').when(function() {
  view.$('a.login').trigger('click');
});

安装和设置

节点

执行 npm install chai-backbone 以启动并运行。然后

var chai = require("chai");
var chaiBackbone = require("chai-backbone");

chai.use(chaiBackbone);

当然,您可以将此代码放入一个通用的测试夹具文件中;例如,使用 Mocha

AMD

Chai Backbone 支持用作 AMD 模块,匿名注册自己(就像 Chai 一样)。因此,假设您已将加载程序配置为将 Chai 和 Chai Backbone 文件映射到相应的模块 ID "chai""chai-backbone",您可以按如下方式使用它们

define(function (require, exports, module) {
    var chai = require("chai");
    var chaiBackbone = require("chai-backbone");

    chai.use(chaiBackbone);
});

<script> 标签

如果您在 Chai 本身之后直接用 <script> 标签包含 Chai Backbone,那么它将自动插入 Chai 并准备使用

<script src="chai.js"></script>
<script src="chai-backbone.js"></script>

许可

版权所有 (c) 2012-2015 Matthijs Groen

MIT 许可证(请参见 LICENSE 文件)