2017-05-18 16 views
6

tôi đã khai phá sau chạy một cách hoàn hảo trước khiSinon cuống callsFake luận

sinon.stub(console, 'log',() => { 
    // Check what the arguments holds 
    // And either console.info it or do nothing 
}); 

Ví dụ, thêm console.info(arguments) bên đó, sẽ chỉ cho tôi bất cứ điều gì console.log đã nhận được.

Với phiên bản 2xx Tôi chuyển sang callsFake:

sinon.stub(console, 'log').callsFake(() => { 
    // Check what the arguments holds 
    // And either console.info it or do nothing 
}); 

này hoạt động tại lâu hơn. console.info(arguments) có giá trị bazaar và không có gì để thực hiện với những gì console.log đang chuyển.

Tôi đang làm gì sai ?!

+1

Hãy thử thay thế callsFake với lợi nhuận() –

Trả lời

0

Chức năng mũi tên bạn đang chuyển đến callsFake không nhận được đối tượng arguments như bạn thường mong đợi ở chức năng thông thường.

Từ MDN

Một mũi tên biểu hiện chức năng có một cú pháp ngắn hơn một biểu hiện chức năng và không có nó riêng này, luận, siêu, hoặc new.target.

Hoặc thay đổi chức năng mũi tên để một chức năng ẩn danh thông thường (function() {...}) hoặc sử dụng toán tử lan sang giải nén một cách rõ ràng các đối số:

sinon.stub(console, 'log') 
console.log.callsFake((...args) => { 
    console.info(args) 
});