【发布时间】:2020-12-30 02:51:29
【问题描述】:
这是服务文件...我无法为此编写测试用例。这些方法由端点进一步调用,我已经测试了控制器并且它正在工作但无法测试服务。服务方法获取消息正在调用外部库中的方法
constructor() {
const googleAuth={
client_id: "soemValue",
client_secret: "value",
refresh_token: "value",
grant_type: 'value',
url:"testurl"
}
this.authProvider = new GoogleAuthProvider(googleAuth);
this.gmail = new GMail(this.authProvider)
}
auth(){}
async getMessages(data)
{
return await this.gmail.getMessages(data)
}
这是 spec.ts 测试文件
let service: GmailService;
let gmail2 :typeof gmail
console.log(gmail)
beforeEach(async () => {
const module: TestingModule = await Test.createTestingModule({
imports: [GmailService["gmail"]],
providers: [GmailService,
{provide:GMail,userFactory:gmailAuth}
],
}).compile();
gmail2=module.get<GmailService["gmail"]>(GmailService["gmail"])
service = module.get<GmailService>(GmailService);
});
afterEach(()=>{
jest.restoreAllMocks()
jest.resetAllMocks()
})
it('should be defined',async () => {
expect(service).toBeDefined();
});
it('tests getAll Messages',async ()=>{
const data={
"userId":"xyz@gmail.com"
}
const result = [{"id": "17642342141234b",
"threadId": "14234234b"}]
// gmail.getMessages(data).mockResolvedValue('someValue')
// expect(gmail.getMessages(data)).not.toHaveBeenCalled();
// const result= await service.getMessages(data)
// expect(gmail.getMessages(data)).toHaveBeenCalled()
// expect(result).toEqual('someValue')
// jest.spyOn(service,"getMessages").mockImplementation(async()=> Promise.resolve(result))
// const response= await service.getMessages(data)
// expect(response).toBe('xyz')
const response = {
json:(body?: any)=>[{}],
}
expect(await service.getMessages(response)).toBe(result)
})
});
【问题讨论】:
标签: typescript nestjs