Javascript 如何在node.js(jasmine)中触发错误回调
我正在尝试使用node.js typescript测试s3 putObject函数的错误回调,并使用jasmine karma测试单元测试Javascript 如何在node.js(jasmine)中触发错误回调,javascript,node.js,typescript,jasmine,karma-jasmine,Javascript,Node.js,Typescript,Jasmine,Karma Jasmine,我正在尝试使用node.js typescript测试s3 putObject函数的错误回调,并使用jasmine karma测试单元测试 @Service() export class S3Service { @Inject() private s3: S3; async upload(params: any) { return new Promise((resolve) => { this.s3.putObject(
@Service()
export class S3Service {
@Inject()
private s3: S3;
async upload(params: any) {
return new Promise((resolve) => {
this.s3.putObject(params, ((error: any) => {
if (error) { // I want to test this statement
throw error;
} else {
resolve('example');
}
}));
});
}
}
这是我的单元测试。从现在起,我将创建新的错误对象,并将其传递到模拟callFake函数中的回调函数中
it ('s3 trigger error callback', async () => {
const params = {
Bucket: example,
Key: example,
ContentType: example,
Body: example,
ACL: example
};
let s3 = Container.get(S3);
const err: any = new Error('Triggered error string');
spyOn(s3, 'putObject').and.callFake((param: any, fn: any ) => fn(err));
await Container.get(S3Service).upload(params);
expect(s3.putObject).toThrowError(err);
});
试验结果为:
失败:
1) s3服务s3触发错误回调
信息:
错误:触发的错误字符串
堆栈:
错误:触发的错误字符串
如何正确触发错误回调