【问题标题】:Node.js/JavaScript Stubbing of Built-in Types?内置类型的 Node.js/JavaScript 存根?
【发布时间】:2011-12-15 00:59:42
【问题描述】:

这个练习相当学术,但它有助于理解 JavaScript 的行为。

为什么会这样:

var fs = require('fs');
console.log(fs.readdirSync('/').length); //approximately '28' on my Macbook
fs['readdirSync'] = function(){ return ['/tmp', '/bin']; };
console.log(fs.readdirSync('/').length); //'2' as expected

这不是:

var a = "hello world";
console.log(a.length); //'11'
a['length'] = 1000;
console.log(a.length); //still '11'... why??

我知道可以对 JavaScript 内置类型(例如 String)进行monkeypatch,但是可以对它们进行存根吗?

提前致谢。

【问题讨论】:

    标签: javascript node.js mocking monkeypatching stubbing


    【解决方案1】:

    感谢TJ Holowaychuk:字符串是不可变的。所以这种方式似乎是不可能的。

    【讨论】:

      猜你喜欢
      • 2011-11-10
      • 2013-09-29
      • 1970-01-01
      • 1970-01-01
      • 2013-05-02
      • 2014-04-29
      • 2016-12-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多