2013-03-28 20 views
4

開發一個回調驅動的API,我想表達一個特定的函數,用一組特定的參數和「任何」函數(回調)來調用。buster.js/sinon有點像`jasmine.any()`?

茉莉花可以做到以下幾點:

var serviceFunction = jasmine.createSpy(); 
var functionUnderTest = create(serviceFunction); 
var thing = 'arbitrary/thing' 

functionUnderTest(thing); 
expect(serviceFunction).toHaveBeenCalledWith(thing, jasmine.any(Function)); 

有興農/ buster.js類似的功能?到目前爲止,我只測試了第一個參數,但我真的很想在測試中表示需要回調。

這是我到目前爲止有:

var serviceFunction = this.spy(); // or `sinon.spy()` 
var functionUnderTest = create(serviceFunction); 
var thing = 'arbitrary/thing' 

functionUnderTest(thing); 
assert.calledWith(serviceFunction, thing); 

回答

9

你應該檢查出sinon.match API(http://sinonjs.org/docs/#sinon-match-api

使用sinon.match.func你上面的例子將成爲:

var serviceFunction = this.spy(); // or `sinon.spy()` 
var functionUnderTest = create(serviceFunction); 
var thing = 'arbitrary/thing' 

functionUnderTest(thing); 
assert.calledWith(thing, sinon.match.func); 
+0

謝謝,並且很抱歉沒有將此標記爲早先的正確答案。 –