我在名为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的新手,有人可以建议我一种成功进行此测试的最佳方法