我有一个具有sendEmail
方法的电子邮件服务,该方法看起来类似于以下代码:
sendEmail(data: FormData) {
return this.http
.post(`${SEND_EMAIL_URI}`, data, {
reportProgress: true,
observe: 'events',
})
.pipe(
tap((event) => {
switch (event.type) {
case HttpEventType.UploadProgress:
...
break;
case HttpEventType.Response:
...
break;
}
}),
catchError((error) => {
...
return EMPTY;
})
);
}
当前,一切正常,但是,我想针对通知data
不正确的情况编写测试。我对POST成功进行了测试,如下所示:
service.sendEmail(formData).subscribe(() => {
httpTestingController.expectOne({
method: 'POST',
url: SEND_EMAIL_URI,
});
});
我想添加一个测试以确认响应状态代码和消息的值。我遇到的问题是,当我尝试编写如下内容时:
service.sendEmail(formData).subscribe((response) => {
...
});
response
不完整。它似乎卡在了0
的步骤sent
上。看来我不得不告诉测试它需要继续侦听其余的响应,例如进展。我该怎么做呢?我还没有运气就此找到好的文档。