我试图将Node包'mobile-detect'存根,以便我可以在Jasmine中测试我的代码。
在代码中调用库如下:
import MobileDetect from 'mobile-detect/mobile-detect';
module.exports = React.createClass({
isMobileDevice: function() {
const mobileDetect = new MobileDetect(window.navigator.userAgent);
return mobileDetect.mobile();
},
componentDidMount: function() {
if (this.isMobileDevice(window)) {
//do mobile stuff
}
},
render: function() {
//load react components
}
};
我试图像这样删除库,但它不起作用:
spyOn(window, MobileDetect).andCallFake(function() {
return {
mobile: function() { return true; }
};
});
这是错误:
Error: <spyOn> : function MobileDetect(userAgent, maxPhoneWidth) {
this.ua = userAgent || '';
this._cache = {};
//600dp is typical 7" tablet minimum width
this.maxPhoneWidth = maxPhoneWidth || 600;
}() method does not exist
我怀疑这是因为MobileDetect
必须在生产代码中“新建”。它显然可以看到该功能,但它并没有正确地将其删除。有什么想法吗?