开玩笑-类内部的模拟变量

时间:2018-09-06 10:41:16

标签: javascript unit-testing jestjs

我有一个带有配置变量的类

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 :(得分:1)

实际上,您现在可以测试testMethod。 该方法根据您要测试的内容而有所不同。 如果要测试在创建新实例期间是否调用了此方法,请对其进行模拟并检查是否使用必需的参数调用了该方法。如果要测试loggerInstance.levelloggerInstance.target_name的值正确,请稍后再检查。

如果要测试方法的逻辑,请使用params进行调用并检查返回的值。

此外,您可以实现依赖关系反转,并获取Logger类以通过构造函数参数接收配置变量。在使用此类的代码中从@/libs/config传递参数,并在测试中传递测试参数。从可伸缩性和体系结构的角度来看,这要好得多。