【发布时间】:2020-02-03 14:36:46
【问题描述】:
我有这个 Angular Web 应用程序,我想在模拟的 REST API 上运行 e2e 测试。我可以很容易地将我的网络请求存根到我的 REST API,但身份验证是使用第三方提供商(Cognito 使用 Amplify)。
现在我想删除包装身份验证的 Angular 服务。
在 Angular 我有
@Injectable({
providedIn: 'root'
})
export class AuthenticationService {
some methods
isSignedIn(): Observable<boolean> {
...
}
}
我想存根isSignedIn()-方法。我的第一次尝试看起来像这样:
import {AuthenticationService} from "../../src/app/authentication.service";
import {BehaviorSubject} from "rxjs";
context('albums', () => {
it('get albums', () => {
cy.stub(AuthenticationService,'isSignedIn').returns(new BehaviorSubject(true));
}
}
Cypress/Chrome 然后抱怨它在该位置找不到 AuthenticationService。我该如何解决?
【问题讨论】:
-
你找到更多关于这方面的信息了吗?
-
以防其他人在看这个。使用 rxjs
of运算符尝试of(true)-BehaviourSubject是类BehaviourSubject的实例,而不是Observable。
标签: angular typescript automated-tests cypress amazon-cognito