В file.js я задаю пользователю несколько вопросов, а затем имею функцию handleThing (), в которой просто есть оператор switch, в основном говорящий
if x>1 then a = "hello world"; else a = "goodbye"
В test.js я хочу вызвать handleThing (), а затем проверить x. Сначала я установил x = 0 глобально в test.js и хочу написать такой тест:
describe("handleThing", function(){
execute handleThing();
it("should assign x", function(){
expect(x).to.equal("goodbye")
}}
x определяется глобально в test.js
Тогда как вы ожидаете, что handleThing будет обращаться к нему, не передавая его в качестве параметра?
handleThing может обращаться к глобально определенным переменным; Я просто явно попытался подтвердить
Но зачем вы тестируете x, если ваш код handleThing не пытается его изменить?
Позже у меня будут другие функции, которые зависят от этой переменной x. Я просто хочу подтвердить, что x - это то, что я говорю. Если только я не пойму, что x есть то. У меня нет большого опыта в тестировании, но я решил, что этот первый тест был необходим.
Я хочу сказать, что содержимое вашей функции не меняет x, как ожидает ваш тест, оно меняет a. Тем не менее, как правило, вы должны пытаться создавать функции без побочных эффектов и просто тестировать выходные данные и параметры, а не глобальные значения или внутренние компоненты.
file.js export function getX() { return x; }





Где определяется x? Вы его нигде не показываете.