Javascript Mocha单元测试用例节点JS
在节点JS中编写单元测试用例时,我面临着模拟函数的问题,该函数是从其他函数调用的。我正在使用sinon chai和mocha在我的应用程序中编写单元测试用例。下面是我的代码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
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
为了获得帮助,你应该描述你所面临的具体问题,并提供整个测试代码和整个测试本身以获得帮助。为了获得帮助,你应该描述你所面临的具体问题,并提供整个测试代码和整个测试本身以获得帮助。