仅使用Mocha进行单元测试中Typescript中的模拟调用

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

我有以下方法:

import { ObjectDal } from "./ObjectDal";

export class ObjectBL {
  async getObject(id) {
      try {
          let dal = new ObjectDal();

          let result = await dal.get(id);

          return result;

      } catch (err) {
          // log the error
      }
}

ObjectDal类在哪里:

export class ObjectDal {
    async get(id) {
        // open connection to db
        // make a query based on id

        // put the result in a `result` variable

        return result;
    }
}

我必须使用only Mocha ...为getObject()方法编写单元测试。

这是UT的开始:

const assert = require('assert');
const ObjectBL = require("../ObjectBL");

describe('Something', () => {
    describe('...', () => {
        it('getObject_GetsObjectUsingID_True', async () => {
            // arange
            let id = "123456789101";
            let expected = {
                "name": "ana",
                "hasApples": true
            };

            let test = new ObjectBL.ObjectBL();

            let result = await test.getObject(id);

            assert.deepStrictEqual(result, expected);
        });
    });
});

但是在这种情况下,我必须从ObjectDal类中调用该方法...

如何仅使用Mocha来模拟对get()方法的调用?

我发现了Sinon的答案,或者发现了Sinon和/或Chai的摩卡,但是只有Mocha没发现...

我有以下方法:从“ ./ObjectDal”导入{ObjectDal};导出类ObjectBL {异步getObject(id){试试{让dal = new ObjectDal(); let result = await ...

javascript typescript unit-testing mocha
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.