gpt4 book ai didi

javascript - 使对象在要测试的函数中可用

转载 作者:行者123 更新时间:2023-11-30 00:18:54 25 4
gpt4 key购买 nike

如何使在测试模块中创建的对象在要测试的函数中可用?

例如,测试代码从xmldom模块中获取一个DOMParser类:

测试:

import assert from 'assert';
import { DOMParser } from 'xmldom';
import { parseHtml } from './../src/parse-html.es6';

describe('HTML Parser', function () {
it('Hello World', function () {
parseHtml();
});
});

那个 DOMParser 类应该是被测试函数中使用的类:

parseHtml():

export function parseHtml(html) {
const parser = new DOMParser();

return parser.parseFromString(
`<html><head></head><body>${html}</body></html>`,
'text/html'
);
}

我如何获得 DOMParser 类,以便 parseHtml 将使用它?

我将使用 mochanodejs 进行测试。

最佳答案

你可以使用 sinon监视或 stub xmldom 类:

import assert from 'assert';
import * as sinon from 'sinon';
import { parseHtml } from './../src/parse-html.es6';
import { default as xmldom } from 'xmldom';

// Spy on the xmldom.DOMParser() constructor
var spy = sinon.spy(xmldom, 'DOMParser');

describe('HTML Parser', function () {
it('Hello World', function () {
parseHtml();
// Check if the constructor was called once (and only once)
assert(spy.calledOnce);
});
});

在每次测试之前,确保重置 spy (spy.reset())。

关于javascript - 使对象在要测试的函数中可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33875451/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com