javascript - 使用sinon如何避免测试嵌套函数?

标签 javascript mocha.js sinon sinon-chai

我正在使用 mocha/chai/sino,而且我对这三个还很陌生。

const a = () => {
  b();
}

const b = () => {
  console.log('here');
}

在此示例中,我只想测试在调用 a 而不执行 b 时是否调用了 b

类似于:

it('test', () => {
  const spy = sinon.spy(b);
  a();
  chai.expect(spy.calledOnce).to.be.true;
})

最佳答案

Sinon 的 stub 就是您正在寻找的内容。

Sinon Stubs

When to use stubs? Use a stub when you want to:

  1. Control a method’s behavior from a test to force the code down a specific path. Examples > include forcing a method to throw an error in order to test error handling.

  2. When you want to prevent a specific method from being called directly (possibly because it triggers undesired behavior, such as a XMLHttpRequest or similar).

it('test', () => {
  const stub = sinon.stub(b);
  a();
  chai.expect(stub.calledOnce).to.be.true;
})

关于javascript - 使用sinon如何避免测试嵌套函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62946180/

相关文章:

mocha.js - 如何继续运行已经失败的 mocha `it`?

node.js - 使用 Appium、Selenium Web 驱动程序、Node js、Mocha 等选择不在 native Android 应用程序屏幕上的 UI 元素

javascript - 断言事件被观察到

javascript - 为什么这个修补后的异步输入在 Nightmarejs 中不起作用?

javascript - 在 Java 中将 ANSI 转换为 UTF-8

javascript - 为什么我的 clickNumber 变量没有保存选定的 dom 元素?

javascript - 如何使用 sinon.js stub 链接函数

javascript - react 警告 : Can't call setState (or forceUpdate) on an unmounted component

node.js - mocha/babel 如何即时转换我的测试代码?

unit-testing - Sinon.js(JS 模拟库)的替代方案是什么?