作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发一个位于自定义反向代理后面的 AngularJS/Javascript 单页应用程序 (SAP),使用 Keycloak 进行单点登录 (SSO)。
当用户点击“注销”,在做了一些其他事情后,应用程序会执行
window.location = reverseProxyHost + '/logout';
确保用户完全注销,不仅仅是从这个应用程序,而是从 Keycloak SSO 授权的所有应用程序。
如果我们允许这条线执行,Karma 会提示
Some of your tests did a full page reload!
此错误无法通过整个测试套件。
我似乎无法从我的测试上下文中覆盖 window.location
对象值。
如果我创建一个 localContext
对象然后尝试
with(localContext){
测试将失败,因为 with
与 'use strict'
不兼容。
关于如何确保生产线以预期结果执行的任何想法?
最佳答案
尝试使用 Angular 中的 $window
和 $window.location.replace
而不是 window.location = "newlocation.com"
。然后你应该能够像这样模拟:
var $window = { location: { replace: jasmine.createSpy('replace') } };
module('app', function ($provide) {
$provide.value('$window', $window);
});
关于javascript - 如何在 Angular JS 投影上对 window.location 进行单元测试分配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38899347/
我是一名优秀的程序员,十分优秀!