我被要求在我的测试中通过使用它来减少重复。each或者创建一个函数。我不确定如何去做。我在测试套件中有其他函数不期望错误。我假设我可以把下面两个重复的Assert放在一个帮助函数中,但是如果你有更好的建议,让我知道。谢谢。
expect(<jest.Mock>fetch).not.toHaveBeenCalled();
expect(e).toBeInstanceOf(TypeError);
测试文件:
it('should throw if no args were passed', async () => {
expect.assertions(3);
return readPricing().catch((e: Error) => {
expect(<jest.Mock>fetch).not.toHaveBeenCalled();
expect(e).toBeInstanceOf(TypeError);
expect(e.message).toBe(
`The 'products' information is required to successfully be able to execute this request.`
);
});
});
it('should throw if no product IDs were passed', () => {
expect.assertions(3);
const noIdData = {
products: [{ salesPrice: '60.00' }, { salesPrice: '80.00' }],
};
// @ts-expect-error
return readPricing(noIdData).catch((e: Error) => {
expect(<jest.Mock>fetch).not.toHaveBeenCalled();
expect(e).toBeInstanceOf(TypeError);
expect(e.message).toBe(`The 'productId' is required to successfully be able to execute this request.`);
});
});
it('should throw if an empty array of products was passed', () => {
expect.assertions(3);
const noIdData = { products: [] };
return readPricing(noIdData).catch((e: Error) => {
expect(<jest.Mock>fetch).not.toHaveBeenCalled();
expect(e).toBeInstanceOf(TypeError);
expect(e.message).toBe(
`The 'products' information is required to successfully be able to execute this request.`
);
});
});
我尝试使用它。每个,但未能成功地设置它,我不确定它是否可能与给定的输入。
1条答案
按热度按时间w8f9ii691#
it.each()
应该可以完成这个任务,您可以实现如下内容:它们应该呈现相同的消息: