繁体   English   中英

如何在 node.js 中监视定义的变量

[英]how spy a defined variable in node.js

请帮我? 我一直在破坏我的想法,但我不知道我应该如何存根变量? 我错了吗? 我应该使用间谍吗?

我应该如何测试这段代码

module.exports = async () => {
  var variable = 'something';
  var taskProcessor = require('taskprocessor');
  try {
    taskProcessor(variable).then().catch();
    //blah blah 
    //blah blah
    //blah blah
    //blah blah
  } catch (error) {
    console.log(err);
  }
};

首先,你应该知道什么是 stub 或 spy(我故意排除了 mocks)

我们使用双精度来控制方法的行为,然后改变测试方向以覆盖我们测试中的所有路径。

间谍包裹在 function 周围,它不会取代它的功能。 但是使用存根,我们可以定义 output:间谍实际上是在你的敌人内部发送一个间谍(在这种情况下是你的代码:D),以模仿真实实体的行为并为你收集信息!

现在让我们 go 回到您的问题!

在这种情况下,您可以使用 rewire 模块。 从它的 git 页面

rewire 为模块添加了一个特殊的 setter 和 getter,因此您可以修改它们的行为以进行更好的单元测试。 您可以

  • 为其他模块或全局变量(如进程)注入模拟
  • 检查私有变量
  • 覆盖模块内的变量。

所以你可以像这样设置任何变量: 在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM