我正在尝试模拟twilio
模块,但这很痛苦。我是Jest的新手,并且我已经阅读过文档,但尚不清楚我应该如何模拟类和类型。
这是我要模拟的代码:
const Twilio = require('twilio')
const client = new Twilio('sid', 'auth')
const response = new Twilio.twiml.VoiceResponse()
构造函数new Twilio
的一部分运行良好:
jest.mock('twilio', () => class {
constructor (accountSid, authToken) {
this.conferences = {
list () {
return mockTwilioListConferences()
}
}
}
})
但是我该如何模拟new Twilio.twiml.VoiceResponse()
部分?
答案 0 :(得分:0)
这里是Twilio开发人员的传播者。
免责声明,我还没有尝试过,但是我相信这是可行的。
twiml
类上的Twilio
属性就是那个属性。在您的模拟中,您会立即返回一个新的匿名类,但是如果在返回之前将该属性添加到类本身中,您应该会发现它是模拟的一部分。
例如:
jest.mock('twilio', () => {
const mockClass = class {
constructor (accountSid, authToken) {
this.conferences = {
list () {
return mockTwilioListConferences()
}
}
}
}
mockClass.twiml = {
// complete your mock implementation here
}
return mockClass;
);
让我知道是否有帮助。