node.js - Mocha Sinon 变更构造函数
问题描述
在测试期间,构造函数内部有不应该执行的代码。由于我是诗乃的新手,我认为我可以做到。我为此准备了下面的示例代码。
人.js
class Person {
constructor() {
console.log("From constructor");
}
}
测试库: app.spec.js
const sinon = require('sinon');
const { Person } = require('../Person');
describe('Person', () => {
it('Test1', () => {
const costructorSpy = sinon.spy(Person.prototype, 'constructor');
new Person();
});
});
但我仍然在终端上看到控制台消息From constructor
。
解决方案
如果要替换构造函数行为,请将其替换为存根,而不是间谍。为此使用 sinon 的 createStubInstance() 方法
const sinon = require('sinon');
const { Person } = require('../Person');
describe('Person', () => {
it('Test1', () => {
const replacedConstructor = sinon.createStubInstance(Person).returns();
new Person();
});
});
推荐阅读
- .net-core - 如何验证发送到 Azure 函数的参数?
- vb.net - 在 VB.NET 中获取 MP4 属性数据
- c++ - 构建后可执行文件缺少完整库路径
- f# - 如何使用拖放读取 Fable Elmish 中的 Browser.Blob
- c# - 使用 FileStream 的额外字节(或者看起来如此)
- c++ - 如何在为 C++ 设置 Visual Studio Code 时修复一些错误?
- javascript - 在 JSX 中如何从 DataPicker 重定向 Handlesubmit?
- sql - 如何获取 LEFT JOIN 数据的计数
- html - 从 shinyapps.io 将 rmarkdown html 文件保存到本地驱动器
- java - 字符串细分和数据返回问题