angular - 单元测试:订阅可观察返回未定义
问题描述
我在使用离子和角度的应用程序上工作,我遇到了单元测试返回未定义的问题,但是当运行应用程序时一切都很好。我的代码:
auth.service.ts
login(email: string, password: string) {
return this.http
.post<AuthResponseData>(
`https://www.googleapis.com/identitytoolkit/v3/relyingparty/verifyPassword?key=${
environment.firebaseAPIKey
}`,
// tslint:disable-next-line: object-literal-shorthand
{ email: email, password: password }
).pipe(tap(this.setUserData.bind(this)));}
auth.service.spec.ts
import { TestBed } from '@angular/core/testing';
import { HttpClientTestingModule } from '@angular/common/http/testing';
import { AuthService } from './auth.service';
let server: AuthService;
describe('AuthService', () => {
beforeEach(() => TestBed.configureTestingModule({
imports: [HttpClientTestingModule],
providers: [AuthService]
}));
beforeEach(() => server = TestBed.get(AuthService));
it('fail ', done =>{
const e = 'INVALID_PASSWORD';
let result;
server.login('s@S.com', '987456').subscribe(
good => {
},
errRes => {
result = errRes.error.error.message;
}
);
expect(result).toEqual(e);
done();
});
});
希望能帮到我=(
解决方案
请在问题中包含您的代码,而不是屏幕截图,以便尝试帮助的人不必转录您的代码...
但是将测试代码移动到错误块内,以便在可观察到的发射后执行:
errRes => {
expect(errRes.error.error.message).toEqual(e);
done();
}
推荐阅读
- javascript - fs.writefile 后 NodeJS API 响应失败
- winapi - 什么函数释放 ID3D11Texture2D?
- bash - 如何从 grep 搜索模式中收集最大值和最小值?
- javascript - django ajax 在 for 循环中不显示任何内容
- swift - 如何在仍然处理所有源事件的组合中限制 flatMap 并发?
- android - Firebase 推送通知应用图标丢失
- javascript - 正则表达式不适用于以字符为输入的动态变量
- swift - SwiftUI NSViewRepresentable 无法从@Publisher 读取数据
- python - 使用 pyspark 读取多个 HDFS 文件时,设备上没有剩余空间
- wpf - 如何在我的 DataGrid 上创建第二行带有 TextBoxes 的标题?