【问题标题】:XMLSerializer is undefined in jest testXMLSerializer 在开玩笑测试中未定义
【发布时间】:2019-09-25 01:31:38
【问题描述】:

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

即使我在网上搜索,也没有找到using a new jsdom 的建议,并创建了 XMLSerializer 的原型。

即使在 SO 上没有帖子,也找不到合适的解决方案。

【问题讨论】:

    标签: xml-parsing jestjs xmlserializer


    【解决方案1】:

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

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

    效果很好。

    【讨论】:

    • 您能否解释一下您在上述原始问题中描述的场景中如何以及在何处使用它?我遇到了同样的问题,有点卡住了!提前致谢!
    • @IanDevlin 抱歉,我现在没有相同的代码和上下文。这是 2 多年前的事了。
    • 是的,不用担心,我知道那是很久以前的事了,我希望以防万一。不过感谢您的回复。
    【解决方案2】:

    今天遇到了同样的问题,看到了这篇文章。我的做法:

    describe('MyXmlDocument', () => {
    
        global.XMLSerializer = function() {
            return {
                serializeToString : jest.fn(x => x) 
            };
        } 
    
        ... your tests here
    });
    

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

    【讨论】:

      猜你喜欢
      • 2017-11-01
      • 2018-06-02
      • 1970-01-01
      • 1970-01-01
      • 2020-08-22
      • 2020-03-17
      • 1970-01-01
      • 1970-01-01
      • 2018-12-11
      相关资源
      最近更新 更多