chai-js-factories
chai-js-factories
为 Chai 添加了对 js-factories 的支持。本质上,它是一个围绕 js-factories 库的包装器,使其在 Chai 命名空间中可用。
安装
chai-js-factories
旨在在大多数 JavaScript 环境中工作,包括 Node 和浏览器。
Node
运行 npm install {--save-dev} chai-js-factories
; 然后,使用
var chai = require('chai');
var chaiJsFactories = require('chai-js-factories');
chai.use(chaiJsFactories);
AMD
根据各自的 README 指示,包含 chai
和 js-factories
,然后将 chai-js-factories
作为普通 AMD 模块包含。
注意,与其他方法不同的是,您需要使用 chai-js-factories
库显式初始化 chai-js-factories
require(['chai', 'js-factories', 'chai-js-factories'], function(chai, Factory, chaiJsFactories) {
chai.use(function(chai, utils) {
chaiJsFactories(Factory, chai, utils);
});
});
<script>
标签
在包含 chai
和 js-factories
后,包含 chai-js-factories.js
<script src="chai.js" encoding="utf-8"></script>
<script src="js-factories.js" encoding="utf-8"></script>
<script src="chai-js-factories.js" encoding="utf-8"></script>
Karma
如果您使用的是 Karma,请查看配套的 karma-chai-js-factories 插件。
使用
访问位于 chai.factory
对象上的 js-factory
库
chai.factory.define('testFactory', function (args) {
return new Example(_.extend({foo: 'bar'}, args));
});
console.log(chai.factory.create('testFactory'));
console.log(chai.factory.create('testFactory', {wom: 'bat'}));
console.log(chai.factory.create('testFactory', {foo: 'wombat'}));
这按预期工作,在创建时提供默认参数时覆盖它们。有关工厂的更多文档,请查看 js-factories 文档。