【问题标题】:Mocking named imports and constructors ES6 & Ava模拟命名导入和构造函数 ES6 和 Ava
【发布时间】:2018-02-23 07:06:28
【问题描述】:

我有一个类构造函数,有一个我想存根的函数:

class Service {
  constructor(){}
  async someFunction() {
    try {
    // does stuff
    }
    catch (e) {}
  }
}

在我要测试的文件中,这是这样导入的:

const { Service } = require('something')
const newService = new Service('xyz')

我正在努力让它在我的测试中正确导入和存根。

目前正在像这样导入:

t.context.service = {
  Service: class Service {
    constructor () {
      this.someFunction = sinon.stub()
    }
  }
}

此导入似乎有效,但我无法通过构造版本获得对它的引用。对这个有帮助吗?

我希望能够做出如下断言:

t.true(t.context.service.Service.someFunction.calledOnce)

【问题讨论】:

    标签: javascript unit-testing ecmascript-6 ava


    【解决方案1】:

    AVA 不提供任何存根。看看https://github.com/testdouble/testdouble.js/http://sinonjs.org/

    【讨论】:

    • 是的,当然,正如您在我的问题中看到的那样,我正在使用 Sinon 进行存根。问题标题中的字符用完了!
    猜你喜欢
    • 2020-09-01
    • 1970-01-01
    • 2011-07-13
    • 1970-01-01
    • 2016-02-05
    • 2018-07-25
    • 1970-01-01
    • 2020-01-03
    • 1970-01-01
    相关资源
    最近更新 更多