模拟javascript ES6构造函数的可接受方法?

模拟javascript ES6构造函数的可接受方法?,javascript,exception,constructor,mocking,Javascript,Exception,Constructor,Mocking,我试图找到一种方法来模拟构造函数,使其抛出一个错误(用于单元测试)。我找到了一些似乎有用的东西。以下是工作示例: class-SomeClass{ 构造函数(val){ this.value=val; } getValue(){ 返回此.value; } }; 设a=newsomeclass('a'); console.log(“a.value=“+a.getValue()); //使SomeClass的行为就像从构造函数中抛出异常一样 var backupSomeClass=SomeClass

我试图找到一种方法来模拟构造函数,使其抛出一个错误(用于单元测试)。我找到了一些似乎有用的东西。以下是工作示例:

class-SomeClass{
构造函数(val){
this.value=val;
}
getValue(){
返回此.value;
}
};
设a=newsomeclass('a');
console.log(“a.value=“+a.getValue());
//使SomeClass的行为就像从构造函数中抛出异常一样
var backupSomeClass=SomeClass;
SomeClass=函数(val){
抛出“伪构造函数中的问题”;
};
尝试
{
设b=新的SomeClass('b');
console.log(“b.value=“+b.getValue());
}
捕获(e){
log(“获取错误:+e”);
}
//返回原始类定义
SomeClass=backupSomeClass;
//使用原始类定义再次测试
尝试
{
设c=newsomeclass('c');
console.log(“c.value=“+c.getValue());
}
捕获(e){
log(“获取错误:+e”);
}
以及相应的输出:

a.value=A
got error: problem in pseudo-constructor
c.value=C
由于我不熟悉对象创建的基本过程,我不确定这种方法是否可以接受(可能的副作用?不稳定?)


如果您有任何反馈或建议,我将不胜感激

@self:即使这似乎有效,但一旦在外部文件中设置了类定义,并且在测试文件中需要该类定义,那么一切都会出错。。。我的错。你能解释一下你想要达到的目标吗?为什么还要模拟构造函数呢?如果您认为创建一个属性丢失或错误的新类会引发错误,那么只需创建一个新类并侦听一个错误就可以了?@Fer to:很抱歉,缺少详细信息。。。我有两个类,A和B。A依赖于B(它构建新的B对象)。我的目标是测试A,并在B构造函数抛出异常时检查A对象的行为。我知道我可以用DI实现这一点,但我希望我可以避免将B依赖注入到类A中……您的代码所做的是创建同一类“SomeClass”的新实例。因此,它们都有相同的构造函数。如果您想检查一些错误处理,最好测试清楚的情况。如果你说的是依赖,那听起来就像是“A类延伸B类”?否则,第三种选择是使用prototype,看看是否可以轻松地覆盖其中的构造函数?也许这就是你想要做的