chai-js-factories

NPM Version

chai-js-factoriesChai 添加了对 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 指示,包含 chaijs-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> 标签

在包含 chaijs-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 文档。