Sinon存根在导出类的打字稿中不起作用

问题描述 投票:0回答:1

对于摩卡和锡南的打字稿中的单元测试,我得到了一个在断言时失败的测试。 bar-是真正的Sinon存根,但任何时候都没有调用。以下是tormozz48用户要求我在打字稿中遇到相同问题的链接。

https://github.com/sinonjs/sinon/issues/1684

这里的问题是无法从另一个模块获取导入的类方法,所以我所做的是导出为

class Foo(){
}
export default new Foo()

并将相同的内容导入另一个模块,如

import  * as foo  from 'foo.ts'

现在,我可以像上述出口一样对锡农进行打桩了。我的问题是我做对了吗?导出类的实例是否更好?

typescript sinon
1个回答
0
投票

这里是一个无需导出类的示例:

    import * as chai from 'chai';

    import * as sinon from 'sinon';



    import { SomeClass } from './some.component';

    import { SinonStubbedInstance } from 'sinon';




    describe('SomeClass ', () => {

      beforeEach(() => {

        chai.should();

      });



      it('should create', () => {

        let classStub: SinonStubbedInstance<SomeClass>;

        classStub= sinon.createStubInstance(SomeClass);

        let expected: any = (classStub == undefined);

        expected.should.be.false;

      });

it('should call someMethod', () => {

    // Arrange

    let classStub: SinonStubbedInstance<SomeClass>;



    // Act

    classStub= sinon.createStubInstance(SomeClass);

    classStub.someMethod();



    // Assert

    classStub.someMethod.calledOnce.should.be.true;

  });

如果不使用chai,可以将其删除。

© www.soinside.com 2019 - 2024. All rights reserved.