- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
当触发效果时,我想在单元测试中测试两个可观察对象,以获得这部分代码的 100% 代码覆盖率。因为 window.location.href
被触发,我无法正确测试它。
export class RouteHelper {
static redirectToExternalUrl(url: string): any {
window.location.href = url;
}
}
效果
@Effect()
handleCreatePaymentSuccess$: Observable<
{} | routerActions.Go
> = this.actions$.pipe(
ofType(cartConfigActions.CREATE_PAYMENT_SUCCESS),
switchMap((action: any) => {
if (action.payload.redirect) {
/* istanbul ignore next */
return Observable.create(
RouteHelper.redirectToExternalUrl(action.payload.redirect),
);
} else {
return of(
new routerActions.Go({
path: [RouteHelper.paths['validate']],
}),
);
}
}),
);
测试 else 条件
it('should dispatch router action Go on success if no redirect url is provided', () => {
const payload = { redirect: null };
const action = new fromCartConfig.CreatePaymentSuccess(payload);
const completion = new routeractions.Go({
path: [RouteHelper.paths['validate']],
});
actions$.stream = cold('-a', { a: action });
const expected = cold('-c', { c: completion });
expect(effects.handleCreatePaymentSuccess$).toBeObservable(expected);
});
测试不适用于 if 条件
it('should redirect to url that is returned from api', () => {
const payload = { redirect: 'http://www.stackoverflow.com' };
spyOn(RouteHelper, 'redirectToExternalUrl').withArgs(payload.redirect);
const action = new fromCartConfig.CreatePaymentSuccess(payload);
const completion = Observable.create(RouteHelper.redirectToExternalUrl);
actions$.stream = cold('-a', { a: action });
const expected = cold('-c', { c: completion });
expect(effects.handleCreatePaymentSuccess$).toBeObservable(expected);
});
谁能解释一下如何测试 If 条件?
最佳答案
解决方法:
it('should dispatch router action Go on success if redirect url is provided', () => {
spyOn(RouteHelper, 'redirectToExternalUrl').and.callFake(() => {});
const payload = { redirect: 'www.buckaroo.nl' };
const action = new fromCartConfig.CreatePaymentSuccess(payload);
actions$.stream = cold('-a', { a: action });
const expected = cold('');
expect(effects.handleCreatePaymentSuccess$).toBeObservable(expected);
expect(RouteHelper.redirectToExternalUrl).toHaveBeenCalled();
});
关于angular - 使用 Marbles 对外部 URL 进行单元测试 NGRX 效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56115132/
我想知道外部css文件是否有单行注释。 我正在使用外部 css 文件 (styles.css),我想在该文件中使用单行注释。我尝试使用“//”、“#”、“--”,但它们都不起作用。我知道我们可以在单行
#c{ height: 160px; width: 250px; background-color: orange; } img{ width: 100%; h
我正在与 Ivy 作斗争(我尝试过 maven,但在为 Hibernate 设置 JBoss 存储库时遇到了一个更困难的事件)。 小问题 - 我正在使用这个很棒的包: http://ooweb.sou
据我所知,在引用外部js文件时使用“async”,例如: 可能会提供最佳性能。但是,因此引用的脚本以任何顺序执行似乎也存在潜在问题。但对于 jQuery 和 jQueryUI(或任何基于 jQuer
我的整个想法有点复杂,但只是为了将事情分解,使它们简单明了……我在一个小部件上有一个按钮,我需要用它打开官方 Facebook 应用。 这是我使用的代码: Intent PlacesIntent =
我需要以 JSON 格式向远程服务器中的 HTTPS 网页发送 POST 并接收 JSON 格式的答案。 要发送到远程服务器的数据是从 URL 中获取的(栏) 我使用以下代码,没有结果,但有 20 秒
我在尝试访问外部 API 时收到套接字挂断错误。即使使用我的 API key (用于在网站上演示 API 的开发 API key ),也可以手动访问外部 API ( click here ) 并返回结
我正在尝试对当前上下文之外的 URL 执行 POST 请求,看起来 Spring 无法理解它。 测试代码: String content = mvc .perf
我公司有一个Google Brand Account管理我们的 YouTube (YT) channel 。我们正在尝试使用 YouTube Analytics & Reporting API 自动导
我们有一个内部部署的 MS CRM 2011,一些表单运行自定义 javascript 来预填充某些字段。数据来 self 们开发的 WCF RESTful Web 服务,该服务与 CRM 在同一台物
我正在尝试对外部 url 执行 ajax 请求。现在我正在用 php 执行此操作 作为 $data = array( 'TokenID' => $tokenid, 'A
我有一个 node.js express 网站,我在其中使用 jwt token 对我的用户进行身份验证。我想包括外部网络应用程序,即 agendash进入我的管理界面。 Agendash 包含在这样
当触发效果时,我想在单元测试中测试两个可观察对象,以获得这部分代码的 100% 代码覆盖率。因为 window.location.href 被触发,我无法正确测试它。 export class Rou
我正在 Spring Boot Java 应用程序中为服务类构建单元测试。 服务类对返回 JSON 响应的 REST API 服务进行外部调用。我正在使用 Mockito 模拟这个调用。我在模拟服务器
我尝试通过 jQuery 中的 $.post 发布大量文本并收到 406 响应。在 300 个字符左右的情况下它可以正常工作。下面是我的代码: index.php html jQuery
目前,我需要在 iOS UI 自动化测试脚本中从外部 JAR 文件调用一些 API。例如,在我的 UI 自动化测试脚本中,我可以输入电子邮件地址并向该地址发送电子邮件。接下来,我需要对外部 JAR 文
我在一个一直工作到上周五的 WP 网站上使用 cURL 创建了一些“基本”API 调用。 从那时起,我收到此错误消息。 错误n:60, 错误:SSL 证书问题:证书已过期。 现在我刚刚检查了https
我是一名优秀的程序员,十分优秀!