我有一个要测试的肥皂映射方法。肥皂呼叫需要被嘲笑,但是我不知道该怎么做。
这是我要测试的地图方法:
import LovSoapCaller from './lovSoapCaller';
const lovOptinSoap = new LovSoapCaller('getAllOptinTypes');
class ScrSoapMapping extends SoapWSMapping {
map(args) {
const customerNumber = +args.shift();
const result = lovOptinSoap.callWS(customerNumber);
return result.optinValue;
}
}
我要模拟的对象是lovOptinSoap
,以便它返回某些内容而无需调用soap Web服务。我找到了模拟导入的示例,但是我认为这很棘手,因为我并没有真正在LovSoapCaller中导出对象:
class LovSoapCaller extends SoapCaller {
constructor(method) {
super(URL, method, mapping);
}
callWS(lang) {
const params = {
language: lang,
};
return super.call(params);
}
}
export default LovSoapCaller;
我尝试使用Jest spyOn()
的方法,但不了解如何“注入”嘲笑(或间谍)的对象...
答案 0 :(得分:0)
您可以向班级添加constructor
(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/constructor)。然后,您可以将lovOptinSoap
传递给该构造函数。