将模拟值传递给方法的可选参数

时间:2019-12-02 06:49:14

标签: jestjs

我在名为UserExists.tests.ts的文件中有代码,如下所示,我们使用了jest测试用例,

import preexistingEmail from './events/preexistingEmail.json';
 const userEvent = await new UserExists(preexistingEmail).handle();
 expect(userEvent.statusCode).toEqual(200);

此preexistingEmail.json是一个带有许多标签的简单json文件,其中仅使用了body标签,如下所示,

"body": {
    "email": "batman3@abcd.com"
},

在实际的处理程序中,我具有以下代码,

async handle(): Promise<HandlerResponse> {
  const email = this.event.body.email;
  return new ResponseController(
    await UserController.doesThisEmailUserExist(email)
  ).handlerResponse();
}

现在,在UserController中,我们有了第2个参数为可选的方法,即,如果未传递值,则需要它创建CognitoService。

static async doesThisEmailUserExist(email: string,
    cognitoService: CognitoService = new CognitoService()): Promise<StandardResponse> {
}

对于测试,我们需要通过MockCognitoService,它是CognitoService的子级。在这里,我不确定如何在调用测试时通过此MockCognitoService,如前所示。我基本上只是通过json进行测试。.依次调用此方法来传递此模拟对象。

我真的是Typescript和Node js的新手,有人可以建议我一种成功进行此测试的最佳方法

0 个答案:

没有答案