Тестируем приложение узла. mocha / chai, как вызвать функцию для проверки внутренних переменных

В 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? Вы его нигде не показываете.

Paul 03.10.2018 23:01

x определяется глобально в test.js

Matt Lee 03.10.2018 23:03

Тогда как вы ожидаете, что handleThing будет обращаться к нему, не передавая его в качестве параметра?

Paul 03.10.2018 23:05

handleThing может обращаться к глобально определенным переменным; Я просто явно попытался подтвердить

Matt Lee 03.10.2018 23:11

Но зачем вы тестируете x, если ваш код handleThing не пытается его изменить?

Paul 03.10.2018 23:14

Позже у меня будут другие функции, которые зависят от этой переменной x. Я просто хочу подтвердить, что x - это то, что я говорю. Если только я не пойму, что x есть то. У меня нет большого опыта в тестировании, но я решил, что этот первый тест был необходим.

Matt Lee 03.10.2018 23:18

Я хочу сказать, что содержимое вашей функции не меняет x, как ожидает ваш тест, оно меняет a. Тем не менее, как правило, вы должны пытаться создавать функции без побочных эффектов и просто тестировать выходные данные и параметры, а не глобальные значения или внутренние компоненты.

Paul 04.10.2018 00:13

file.js export function getX() { return x; }

hojin 17.04.2019 05:32
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
8
20
0

Другие вопросы по теме