ewo*_*wok 5 javascript unit-testing node.js sinon
我有一个正在测试的类,它创建另一个类的实例。我想删除整个第二个类,以便它的构造函数永远不会被调用。例如,如果我有这样的设置:
测试.js
class Test {
constructor() {
}
func() {
let foo = new Foo()
foo.hello()
}
}
Run Code Online (Sandbox Code Playgroud)
Foo.js
class Foo {
constructor() {
this.a = 1
this.b = 2
this.c = 3
console.log('original constructor')
}
hello() {
console.log('original hello')
}
goodbye() {
console.log('original goodbye')
}
}
Run Code Online (Sandbox Code Playgroud)
在我的测试文件中,我想以某种方式存根整个类Foo,这样当我运行测试时,Test.func()它就不会调用原始Foo构造函数,而是调用一个返回假Foo对象的存根构造函数。然后我将把hello假Foo对象的函数存根到 printstubbed hello而不是original hello.
我怎么能像这样存根整个班级呢?
注意:我不想创建可以在测试文件中使用的存根实例。我需要对构造函数本身进行存根处理,以便如果堆栈中的某些内容调用构造函数,它会返回一个存根实例。
在 sinon 文档中:
\n\n如果您想创建 MyConstructor 的存根对象,但不希望调用构造函数,请使用此实用程序函数。
\n\nvar stub = sinon.createStubInstance(MyConstructor)\nRun Code Online (Sandbox Code Playgroud)\n\nhttp://sinonjs.org/releases/v1.17.7/stubs/
\n| 归档时间: |
|
| 查看次数: |
6583 次 |
| 最近记录: |