小编sta*_*lee的帖子

使用超级调用来存储javascript方法

我正在尝试测试在其父级中调用类方法的ES6类方法.例如:

Polygon.js

class Polygon {
    verifyDimensions() {
        this.allSidesValid();
    }
}
export default Polygon;
Run Code Online (Sandbox Code Playgroud)

Square.js

import Polygon from './Polygon';
class Square extends Polygon {
    verifyDimensions() {
        super.verifyDimensions();
        if( this.height !== this.width ) {
            throw new Error( 'Not square' );
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我想测试Square的verifyDimensions而不调用Polygon的verifyDimensions.使用sinon/chai进行测试似乎babeljs在创建类时正在制作源方法的副本.这使得它很难被删除.

例如,如果我像这样设置我的测试:

Square.spec.js

beforeEach( () => {
    sinon.stub( Polygon.prototype, 'verifyDimensions' );
    context.verifyDimensions = Square.prototype.verifyDimensions;
} );
Run Code Online (Sandbox Code Playgroud)

super.verifyDimensions()仍将是指Polygon.prototype.verifyDimensions,将错误的测试.

javascript unit-testing ecmascript-6 babeljs sinon-chai

5
推荐指数
0
解决办法
564
查看次数

如何在自身内实例化匿名es6类

假设我正在解析一个树,其中Node可以将另一个Node实例化为子节点.当这个类被命名时,这很容易:

class Node {
    parseLeaves( leaves ) {
        _.each( 
            leaves,
            ( leaf ) => {
                this.leaves.push( new Node( leaf ) );
            }
        );
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,如果没有先命名导出类,该怎么办?如何确定班级?即

export default class {
    parseLeaves( leaves ) {
        _.each( 
            leaves,
            ( leaf ) => {
                this.leaves.push( new ???( leaf ) ); 
            }
        );
    }
}
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-6 babeljs

4
推荐指数
2
解决办法
1122
查看次数

确定 JavaScript 类是否扩展另一个类

假设我在 Backbone 上了一堂课:

var MyModel = Backbone.Model.extend( {} ); 
Run Code Online (Sandbox Code Playgroud)

使用 instanceof 运算符,我可以检查实例化对象是否扩展了对象:

var instModel = new MyModel();
instModel instanceof MyModel; // true
instModel instanceof Backbone.Model; // true
Run Code Online (Sandbox Code Playgroud)

我希望能够在不实例化对象的情况下检查继承。JavaScript 或 Backbone 中是否有方法来确定未实例化的类是否扩展了对象?自从:

 MyModel instanceof Backbone.Model; // false
 MyModel instanceof Function; // true
Run Code Online (Sandbox Code Playgroud)

javascript backbone.js

3
推荐指数
1
解决办法
2016
查看次数

使用Solr查询HBase

我有一个数据仓库问题,需要查询大型数据集.为了这个例子,我们可以说一个典型的州有3000万用户,每个用户都有活动统计数据.理想情况下,我可以购买数据仓库工具(Vertica,Infobright等...),但这不在卡片或预算中.

现在我正在考虑使用Solr来查询HBase.虽然我相信HBase可以扩展到需求,但我担心Solr.它被优化为搜索引擎,即结果的第一页在最后一页之前返回,并且不支持像数据库游标这样的东西.到目前为止的测试表明,从Solr获得大量结果的速度比我想要的慢.例如,比较查询将在一分钟内完成社区版Infobright的一半可用用户(最终返回500 MB数据)的查询,对Solr来说需要12分钟.

Solr以外的其他东西更适合查询这些数据吗?是否有任何优化可以帮助批量数据输入和输出?

solr hbase data-warehouse

1
推荐指数
1
解决办法
1万
查看次数