使用自定义函数扩展 should.js
Extending should.js with a custom function
我有一个简单的 lodash mixin:
var _ = require('lodash')
_.mixin(require('lodash-uuid'))
我可以像这样在代码中使用:
if (_.isUuid(someValue)) {
// it's a uuid!
}
我希望能够扩展基于 should.js 的测试以利用此模块,例如:
response.should.have.property('uuid').which.is.a.uuid()
扩展 Should 的 docs 有点轻;我试过了:
var uuid = should.extend('uuid', _.isUuid)
但是抛出:
TypeError: response.should.have.property(...).which.is.a.uuid is not a function
你使用的方法不对。您使用的方法是将 should getter 添加到任何对象。您需要使用 should.Assertion.add
,例如:
var should = require('should');
should.Assertion.add('uuid', function() {
this.params = { operator: 'to be UUID' };
this.assert(_.isUuid(this.obj));
});
我有一个简单的 lodash mixin:
var _ = require('lodash')
_.mixin(require('lodash-uuid'))
我可以像这样在代码中使用:
if (_.isUuid(someValue)) {
// it's a uuid!
}
我希望能够扩展基于 should.js 的测试以利用此模块,例如:
response.should.have.property('uuid').which.is.a.uuid()
扩展 Should 的 docs 有点轻;我试过了:
var uuid = should.extend('uuid', _.isUuid)
但是抛出:
TypeError: response.should.have.property(...).which.is.a.uuid is not a function
你使用的方法不对。您使用的方法是将 should getter 添加到任何对象。您需要使用 should.Assertion.add
,例如:
var should = require('should');
should.Assertion.add('uuid', function() {
this.params = { operator: 'to be UUID' };
this.assert(_.isUuid(this.obj));
});