javascript - SinonJS 间谍调用似乎无法正常工作
问题描述
我正在尝试从类实例中监视方法调用,如下所示:
export class MyClass {
async method(project, service) {
console.log('calling my method');
}
}
然后在我的测试中,我这样做:
const classInstance = new MyClass();
const spy = sandbox.spy(classInstance, 'method');
classInstance.method();
sinon.assert.calledOnce(spy);
奇怪的是,“console.log”被打印出来了,但是 sinon 断言是说该方法没有被调用:\
难道我做错了什么?谢谢!
解决方案
它应该工作。我正在使用"sinon": "^8.1.1"
. 例如
index.ts
:
export class MyClass {
async method(project, service) {
console.log('calling my method');
}
}
index.test.ts
:
import { MyClass } from './';
import sinon from 'sinon';
describe('60605728', () => {
it('should spy', () => {
const sandbox = sinon.createSandbox();
const classInstance = new MyClass();
const spy = sandbox.spy(classInstance, 'method');
classInstance.method('project', 'service');
sinon.assert.calledOnce(spy);
});
});
单元测试结果:
60605728
calling my method
✓ should spy
1 passing (10ms)
推荐阅读
- c# - 试图从 SQL Server 中提取两个时间范围之间的记录
- ios - 通过 iOS SDK 使用 Apple Pay
- firebase - Flutter Firebase 如何集成生成令牌的第三方身份验证
- r - 如何计算由R中另一列分组的数据框中列的密度?
- ruby-on-rails - Rails 5.2 自动加载在开发中不起作用
- java - Intellij 2019.2:GlassFish 需要 Java SE 版本 6。您的 JDK 版本为 0
- python - 带有面向对象代码的 Python line_profiler
- java - 在 Selenium 测试中处理机器人类步骤的替代方法
- printf - printf 在 zsh 中添加神秘的尾随 % 字符
- google-apps-script - 如何从谷歌表格列表自动发送电子邮件