如何获取模块的新实例

维旺迪

我在NodeJS中使用以下模块:

文件:collection_item.js

var items = [];
var exports = module.exports;
exports = module.exports = function() {
};

exports.prototype.addItem = function(item) {
    items.push(item);
};

exports.prototype.deleteItem = function(index) {
    items.splice(index, 1);
};

我也用此代码进行测试:

var assert = require("assert");
var itemCollection = require('../../item_collection.js');

describe('Item collection', function(){
    describe('#addItem', function(){
        it('should add object to the collection', function(){
            var collection = new itemCollection();

            collection.addItem({
                test: 'aaa'
            });

            assert.equal(collection.count(), 1); // Success
        });
    });

    describe('#deleteItem', function(){
        it('should delete the given item  from the collection', function(){
            var collection = new itemCollection();

            var item1 = {
                test: 'aaa'
            };

            var item2 = {
                test: 'bbb'
            };

            var item3 = {
                test: 'ccc'
            };

            collection.addItem(item1);
            collection.addItem(item2);
            collection.addItem(item3);

            collection.deleteItem(2);

            assert.equal(collection.count(), 2); // Fails, says it has 3 items
        });
    });
});

我在这里的问题是第二次测试失败。它断言集合中只剩下2个项目,但是说它只有3个项目。

这是因为第一个测试向集合中添加了1个项目。但是在第二次测试中,我做了一个:

var collection = new itemCollection();

集合为什么不是空的?由于某种原因,它仍然具有在第一个测试中添加的项目。我不明白为什么会这样。

有人知道吗?

滞后反射

items不是“私人”会员。

试试这个:

var exports = module.exports;
exports = module.exports = function() {
    this.items = [];
};

exports.prototype.addItem = function(item) {
    this.items.push(item);
};

exports.prototype.deleteItem = function(index) {
    this.items.splice(index, 1);
};

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何为每个对象获取新的Python模块随机种子实例

来自分类Dev

如何获取声明 Table 实例的模块的名称?

来自分类Dev

如何从模块实例获取服务实例[Angular]

来自分类Dev

如何使用Backbone扩展NodeJS中模块的新实例

来自分类Dev

无法获取新实例

来自分类Dev

如何获取新的Google Compute Engine实例的ssh密钥?

来自分类Dev

如何在Android上获取新的Window实例?

来自分类Dev

如何从后台获取活动避免打开它的新实例

来自分类Dev

获取spring bean的新实例

来自分类Dev

如何在不创建新的空实例的情况下获取类的实例

来自分类Dev

NestJS:每个模块导入的HttpModule的新实例

来自分类Dev

如何编写每个网络名称空间中的新实例的Linux内核模块?

来自分类Dev

在python子进程模块中调用adb时如何防止后台进程的新实例

来自分类Dev

Verilog:如何实例化模块

来自分类Dev

Prestashop 1.6获取模块类的实例

来自分类Dev

Firefox:如何在电解(e10s)下从JS模块获取nsIMessageManager实例?

来自分类Dev

如何获取 IProgressMonitor 的实例?

来自分类Dev

如何实例化通用类型的新实例

来自分类Dev

如何从旧实例创建新实例?

来自分类Dev

如何创建ImmutableDictionary的新实例?

来自分类Dev

powermockito如何拦截新实例?

来自分类Dev

如何导入新类型实例

来自分类Dev

如何创建结构的新实例

来自分类Dev

powermockito如何拦截新实例?

来自分类Dev

如何动态创建新实例?

来自分类Dev

启动新的工作流程实例时,如何获取我的工作流程RunID?

来自分类Dev

如何将Sitecore Analytics数据获取到新的Sitecore实例中

来自分类Dev

如何从模块ID获取Moodle模块名称

来自分类Dev

如何从pytorch模块获取子模块序列?

Related 相关文章

热门标签

归档