【问题标题】:How to mock "window.location.origin" in jasmine unit test angular6如何在茉莉花单元测试angular6中模拟“window.location.origin”
【发布时间】:2019-04-16 10:25:36
【问题描述】:

我想在我的单元测试中模拟window.location.origin。 我试图直接编辑它。但它说位置对象是只读的。

我找不到其他方法。你能帮帮我吗?

e,g

function login(){
if(window.location.origin) {
    window.location.href = 'https://stackoverflow.com';
}}

如何测试login() 函数?

【问题讨论】:

标签: javascript angular unit-testing jasmine


【解决方案1】:

最后,我们通过下面的代码找到了一种模拟窗口对象的方法:

    windowRedirect(localWindow) {
    const windowObj = localWindow || window;
    windowObj.location.href = 'https://www.google.com';
    }

UT:

    it('Test window', (done: DoneFn)=> {
    const localWindow = {
        location: {
            href: 'currentUrl'
        }
    };
    component.windowRedirect(localWindow);
    expect(localWindow.location.href = 'https://www.google.com');
    done();
   });

我认为这仍然是一个临时解决方案。如果您有任何其他想法,请添加您的评论。

【讨论】:

    猜你喜欢
    • 2015-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多