XMLSerializer 在玩笑测试中未定义

XMLSerializer is undefined in jest test

我在 NODE 包 class 方法之一中使用了 XMLSerializer class。使用 jest 编写单元测试用例时抛出 XMLSerializer is not undefined 错误。由于这是浏览器原生的,所以不能有任何包。

即使我在网上搜索,也找不到关于 using a new jsdom 和创建 XMLSerializer 原型的建议。

SO 上没有帖子也没有找到合适的解决方案。

我目前为 XMLSerializer 使用了如下包装(打字稿代码):

export default class XmlSerializerWrapper {
    private serializer: XMLSerializer;
    constructor() {
        this.serializer = new XMLSerializer();
    }
    public serializeToString(doc: Document) {
        return this.serializer.serializeToString(doc);
    }
}

它工作正常。

今天遇到了同样的问题并遇到了这个 post。我的做法:

describe('MyXmlDocument', () => {

    global.XMLSerializer = function() {
        return {
            serializeToString : jest.fn(x => x) 
        };
    } 

    ... your tests here
});

我的代码只需要 serializeToString() 方法,所以这是唯一被模拟的方法。