2012-05-14 11 views
11

Tôi cố gắng để còn sơ khai như sau:Làm thế nào để còn sơ khai một emitter kiện với Sinon.js

on('complete', function(data){ }); 

Tôi chỉ muốn gọi gọi lại nếu tham số đầu tiên là 'hoàn toàn'.

Chức năng Tôi đang thử nghiệm cũng chứa:

on('error', function(data){ }); 

Vì vậy, tôi không thể chỉ làm mang lại nguyên nhân đó sẽ cháy cả đầy đủ và gọi lại báo lỗi.

Nếu tôi không sử dụng sinon, tôi sẽ giả mạo nó bằng cách viết những điều sau đây.

var on = function(event, callback){ 
    if (event === 'complete'){ 
    callback('foobar'); 
    }; 
}; 
+0

Can bạn hiển thị một ví dụ đầy đủ hơn về hàm chứa này? –

Trả lời

0

lẽ bạn có thể sử dụng một spyCall:

var spy = sinon.spy(window, 'on'); 
on('error', function(data){ }); 
on('complete', function(data){ }); 
for(var i=0; i < spy.callCount; i++){ 
    var call = spy.getCall(i); 
    if(call.args[0] === 'complete') call.args[1]('foobar'); 
} 
7

Bạn có thể thu hẹp những trường hợp mà một yield xảy ra bằng cách kết hợp nó với một withArgs như vậy ...

on.withArgs('complete').yields(valueToPassToCompleteCallback); 
on.withArgs('error').yields(valueToPassToErrorCallback); 
Các vấn đề liên quan