【问题标题】:How to mock async function如何模拟异步函数
【发布时间】:2022-02-15 20:52:06
【问题描述】:

我试图测试一个函数,在这个函数内部有异步函数。我只模拟了函数getDataExtracontractual(),这是我的主要函数

const obtenerCargaMasiva = async () => {
    const dataMasiva = await getDataExtracontractual()
    const dataSort = await sorterData(dataMasiva.Items)    
    return {
        data: dataSort 
    }
}

另一个函数是

const getDataExtracontractual = async () => {
    const db = DynamoDbDatabase.getInstance();
    const singleIndex = DynamoDbDatabase.getTypeIndex();
    const params = {}
    params.TableName = TableNameMatrix
    params.IndexName = singleIndex.name
    params.KeyConditionExpression = '#GSIPK = :GSIPK'
    params.ExpressionAttributeNames = { '#GIR': 'PK', '#GSIPK': 'GSI1PK' }
    params.ExpressionAttributeValues = { ':GIR': `${RC.Extracontractual}#`, ':GSIPK': RC.Extracontractual }
    params.FilterExpression = '(begins_with(#GIR, :GIR) )'
    return db.query(params).promise();
}

mi测试是这样的

jest.mock("../../../../src/admin/rc/extracontractual/data-access");
const dataExtracontractual = require('./data/extracontractual.fake.json');
const DataAccess = require("../../../../src/admin/rc/extracontractual/data-access")
const Controller = require("../../../../src/admin/rc/extracontractual/controller")

describe("Test Service",()=>{
    describe("Listar Extracontractual",()=>{
        it("Se envian datos validos", async ()=>{
            const { response,payload } = dataExtracontractual.service;
            DataAccess.getDataExtracontractual.mockReturnValueOnce();
            const result = await Controller.obtenerCargaMasiva(payload);
            expect(result).toEqual(response)
        })
    })
})

当我运行测试时。我有下一个错误 TypeError: Cannot read property 'Items' of undefined 如果我显示 dataMasiva。返回未定义。

【问题讨论】:

  • 让我们尝试将getDataExtracontractual的模拟结果传递给.mockReturnValueOnce()
  • 谢谢Hoangdv
  • 也许您可以将其作为答案发布,@hoangdv,以便我们对其进行投票

标签: javascript node.js jestjs


【解决方案1】:

解决方案是将getDataExtracontractual 的模拟结果传递给.mockReturnValueOnce()

【讨论】:

    猜你喜欢
    • 2021-08-11
    • 2019-06-15
    • 2019-03-13
    • 1970-01-01
    • 1970-01-01
    • 2015-07-05
    • 1970-01-01
    • 1970-01-01
    • 2018-02-18
    相关资源
    最近更新 更多