Tôi muốn đơn vị kiểm tra lớp ES6 sau:Mocking Javascript constructor với Sinon.JS
// service.js
const InternalService = require('internal-service');
class Service {
constructor(args) {
this.internalService = new InternalService(args);
}
getData(args) {
let events = this.internalService.getEvents(args);
let data = getDataFromEvents(events);
return data;
}
}
function getDataFromEvents(events) {...}
module.exports = Service;
Làm thế nào để chế nhạo constructor với Sinon.JS để châm biếm getEvents
của internalService
để kiểm tra getData
?
Tôi đã xem Javascript: Mocking Constructor using Sinon nhưng không thể trích xuất giải pháp.
// test.js
const chai = require('chai');
const sinon = require('sinon');
const should = chai.should();
let Service = require('service');
describe('Service', function() {
it('getData', function() {
// throws: TypeError: Attempted to wrap undefined property Service as function
sinon.stub(Service, 'Service').returns(0);
});
});
Hãy xem câu hỏi này: [Javascript: Mocking Constructor sử dụng Sinon] (https://stackoverflow.com/questions/14569499/javascript-mocking-constructor-using-sinon). – sdgluck
@sdgluck Tôi đã làm, nhưng tôi đã không thể giải nén giải pháp cho trường hợp của tôi – krl
Bản sao có thể có của [Javascript: Xây dựng mô phỏng bằng Sinon] (https://stackoverflow.com/questions/14569499/javascript-mocking-constructor- sử dụng-sinon) –