簡體   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