我正在尝试测试在其父级中调用类方法的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,将错误的测试.
假设我正在解析一个树,其中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) 假设我在 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) 我有一个数据仓库问题,需要查询大型数据集.为了这个例子,我们可以说一个典型的州有3000万用户,每个用户都有活动统计数据.理想情况下,我可以购买数据仓库工具(Vertica,Infobright等...),但这不在卡片或预算中.
现在我正在考虑使用Solr来查询HBase.虽然我相信HBase可以扩展到需求,但我担心Solr.它被优化为搜索引擎,即结果的第一页在最后一页之前返回,并且不支持像数据库游标这样的东西.到目前为止的测试表明,从Solr获得大量结果的速度比我想要的慢.例如,比较查询将在一分钟内完成社区版Infobright的一半可用用户(最终返回500 MB数据)的查询,对Solr来说需要12分钟.
Solr以外的其他东西更适合查询这些数据吗?是否有任何优化可以帮助批量数据输入和输出?
javascript ×3
babeljs ×2
ecmascript-6 ×2
backbone.js ×1
hbase ×1
sinon-chai ×1
solr ×1
unit-testing ×1