node.js - 如何在 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)
我们使用双精度来控制方法的行为,然后改变测试方向以覆盖我们测试中的所有路径。
spy 包裹了函数,它不会替换它的功能!但是使用存根我们可以定义输出。间谍实际上是在您的敌人内部发送间谍(在这种情况下是您的代码:D),以模仿真实实体的行为并为您收集信息!
现在让我们回到你的问题!
在这种情况下,您可以使用 rewire 模块。从它的 git 页面
rewire 为模块添加了一个特殊的 setter 和 getter,因此您可以修改它们的行为以进行更好的单元测试。您可以
- 为其他模块或全局变量(如进程)注入模拟
- 检查私有变量
- 覆盖模块内的变量。
推荐阅读
- python - 尝试 conda 安装依赖于 gdal 的软件包时出错(rasterio、geopandas 等)
- java - 检查 Optional 中是否存在 null 属性并返回 String Java Stream API
- installation - 新xampp版本安装
- linux - Linux AD 用户只能使用它的主组?
- python - 在 Python 中跨多个列应用 str.contains 的问题
- java - Oracle select * from all_sequences 太慢了
- html - Css 使子 div 具有 100% 的高度并在必要时可滚动
- amazon-s3 - s3fs - 最大文件大小限制
- shell - 将日期字符串添加到 sh 脚本中的变量
- c# - 如何创建从模型到视图的男性和女性列表