Первые два аргумента - это объект Request
и объект Response
.
Так как ваш код не использует req
или res
, вы можете просто передать пустые объекты как фиктивные и сообщитьВведите TypeScript для обработки макетов как ожидаемых типов, используя as
:
it('should call next', () => {
const next = jest.fn();
middleware(
{} as Request,
{} as Response,
next,
);
expect(next).toHaveBeenCalled(); // SUCCESS
});
Обновление
Если вы хотите макетировать дополнительные свойства для Request
или Response
затем вы можете просто добавить их к вашему фиктивному объекту.
Ваш фиктивный объект (вероятно) не будет реализовывать полный интерфейс Request
или Response
, поэтому вы можете использовать что-то вроде Partial<Request>
или Partial<Response>
или просто сообщите TypeScript, что вы хотите "отказаться от проверки типов и позволить значениям проходить проверку во время компиляции" , используя тип any
для фиктивных объектов:
it('should call next', () => {
const req: any = {
get: jest.fn((name) => {
if (name === 'content-type') return 'text/plain';
})
};
const res: any = {
send: jest.fn()
}
const next = jest.fn();
middleware(
req,
res,
next,
);
expect(next).toHaveBeenCalled(); // SUCCESS
});