在Jasmine中创建一个新的功能

时间:2017-03-15 16:24:38

标签: javascript node.js unit-testing jasmine

我试图将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必须在生产代码中“新建”。它显然可以看到该功能,但它并没有正确地将其删除。有什么想法吗?

0 个答案:

没有答案