【发布时间】:2019-03-19 06:46:01
【问题描述】:
我已经在返回 Promise 的 Angular 上设置了简单的身份验证服务:
import * as firebase from 'firebase/app';
@Injectable({
providedIn: 'root'
})
export class AuthService {
doLogin(val:{email:string, password:string}) {
return new Promise<any>((resolve, reject) => {
firebase
.auth()
.signInWithEmailAndPassword(val.email, val.password)
.then(
res => resolve(res),
err => reject(err)
);
});
}
}
如何在服务上正确实施单元测试? 我目前使用 jasmine 进行单元测试的方式是提供真实的用户凭据(这不是一件好事,因为我要将代码推送到 github)并使用凭据直接调用 doLogin 方法。
describe('AuthService', () => {
let service: AuthService;
const userCreds = {
email: 'somerealemail@somedomain.com',
password: 'somerealpassword'
};
beforeEach(() => TestBed.configureTestingModule({
imports: [FirebaseModule],
providers: [AuthService]
}));
beforeEach(() => {
service = TestBed.get(AuthService);
});
it('should logged in', async((done) => {
service.doLogin(userCreds).then(
res => {
expect(res).toBeTruthy();
}
)
}));
抱歉,如果代码混乱,我对 angular 和 jasmine 都是全新的,非常感谢任何建议或想法, 谢谢
【问题讨论】:
标签: angular firebase unit-testing jasmine firebase-authentication