Javascript Mocha单元测试用例节点JS

Javascript Mocha单元测试用例节点JS,javascript,node.js,unit-testing,mocha.js,chai,Javascript,Node.js,Unit Testing,Mocha.js,Chai,在节点JS中编写单元测试用例时,我面临着模拟函数的问题,该函数是从其他函数调用的。我正在使用sinon chai和mocha在我的应用程序中编写单元测试用例。下面是我的代码 if (req.body.escalationDay === undefined) { throw new Error('\'escalationDay\' attribute is required'); } const escalationDay = req.body.escalat

在节点JS中编写单元测试用例时,我面临着模拟函数的问题,该函数是从其他函数调用的。我正在使用sinon chai和mocha在我的应用程序中编写单元测试用例。下面是我的代码

    if (req.body.escalationDay === undefined) {
      throw new Error('\'escalationDay\' attribute is required');
    }

    const escalationDay = req.body.escalationDay;
    const invoiceId = req.params.id;
    const lineItemNumber = req.params.lineItemNumber;
    const invoice = await doGetInvoiceById(invoiceId, req);

    if (!invoice) {
      console.log("hi i am in")
      throw new Error(`No invoice found with id ${invoiceId}`);
    }

    if (!invoice.InvoiceLineItems) {
      throw new Error(`No line items found for invoice with id ${invoiceId}`);
    }

    const lineItem = invoice.InvoiceLineItems.find(li => +li.Id === +lineItemNumber);

    if (!lineItem) {
      throw new Error(`No line items with line item id ${lineItem.Id} found for invoice with id ${invoiceId}`);
    }
 }```

and below is the unit test case I am writing for this function

```  it('Should test escalation', () => {
        let mockReq = {
            params: {
                id: '5f6bfc693b2253001a140cba',
                lineItemNumber: 1
            },
            body: { escalationDay: 0 },
            query: {
                system: "test"
            }
        };
        let sinonStub = sinon.stub(service(reqHandler, microservicesettings), 'doGetInvoiceById');
        sinonStub.withArgs('5f6bfc693b2253001a140cba', mockReq).returns(
            { InvoiceLineItems : [] }
        );
        
        assert.equal(InvoiceService(reqHandler, microservicesettings).doInvoiceLineItemEscalation(mockReq)).to.be.equal( { InvoiceLineItems : [] });
        
    })```

It will be good if I can get any idea what i am missing

为了获得帮助,你应该描述你所面临的具体问题,并提供整个测试代码和整个测试本身以获得帮助。为了获得帮助,你应该描述你所面临的具体问题,并提供整个测试代码和整个测试本身以获得帮助。