Я пишу некоторые утилиты, связанные с объектом document
.
Допустим, я пишу объект, который использует document
объект браузера.
// utils.js
export function myFn(callback) {
document.addEventListener(callback);
}
Мой тестовый файл выглядит так:
// utils.test.js
import test from "ava";
import { JSDOM } from "jsdom";
import sinon from "sinon";
import { myFn } from "./utils";
let dom, document;
test.beforeEach(() => {
dom = new JSDOM();
document = dom.window.document;
});
test("it calls the callback when document is ready", t => {
let fakeCb = sinon.spy();
myFn(fakeCb);
t.true(fakeCb.called);
});
После выполнения этого теста я получил ссылку ReferenceError, сообщающую, что «документ не определен», что имеет смысл.
У меня такой вопрос: как можно было бы использовать переменную document
из моего теста внутри тестируемой функции?
Эта функция работает, если я передаю ей параметр document
, но это ужасное решение.