2016-01-08 2 views
0

Я получил простой подмешать:Продление should.js с пользовательской функции

var _ = require('lodash') 
_.mixin(require('lodash-uuid')) 

Что я могу использовать в коде следующим образом:

if (_.isUuid(someValue)) { 
    // it's a uuid! 
} 

Я хотел бы быть в состоянии расширить -На тесты, чтобы использовать этот модуль, например:

response.should.have.property('uuid').which.is.a.uuid() 

docs для удлинения. Должно быть немного света; Я пробовал:

var uuid = should.extend('uuid', _.isUuid) 

Но броски:

TypeError: response.should.have.property(...).which.is.a.uuid is not a function 

ответ

2

Вы не использовали правильный метод. Метод, который вы использовали, - это добавить getter к любому объекту. Вам необходимо использовать should.Assertion.add, например:

var should = require('should'); 

should.Assertion.add('uuid', function() { 
    this.params = { operator: 'to be UUID' }; 

    this.assert(_.isUuid(this.obj)); 
}); 
+0

Ницца! Благодарю. Документы Should.js не оставили никаких указаний на то, что это будет способ сделать это ... – brandonscript

+0

Возможно, да. Я попытаюсь исправить это позже. –