Jest - макет переменных внутри класса - PullRequest
0 голосов
/ 06 сентября 2018

У меня есть класс с переменными конфигурации

import  config  from '@/libs/config';

export class Logger {

  constructor () {
    this.level = this.testMethod(config.LOGGER);
    this.target_name = this.testMethod(config.LOGGER_TARGETS);
   }

И, например, у меня есть метод, в котором я использую config переменные

  testMethod(config) {
    return config;
  }

Можно ли смоделировать config variables (например, config.LOGGER или config.LOGGER_TARGETS) для проверки моего testMethod? Как я могу получить доступ и установить его?

1 Ответ

0 голосов
/ 06 сентября 2018

На самом деле, вы можете проверить testMethod прямо сейчас. Подход варьируется в зависимости от того, что вы хотите проверить. Если вы хотите проверить, что этот метод вызывается при создании нового экземпляра, просто смоделируйте его и проверьте, был ли он вызван с необходимыми аргументами. Если вы хотите проверить, что loggerInstance.level и loggerInstance.target_name имеют правильные значения, просто проверьте их позже.

Если вы хотите проверить логику метода - вызовите его с параметрами и проверьте возвращаемое значение.

Также вы можете реализовать инверсию зависимостей и получить класс Logger для получения переменных конфигурации через параметры конструктора. Передайте параметры из @/libs/config в коде, который использует этот класс, и передайте тестовые параметры в тестах. Это гораздо лучше с точки зрения масштабируемости и архитектуры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...