茉莉花:在测试中忽略页面重定向

3

我有一个类似于以下Javascript设置:

function a()
{
    // some logic...
    b();
};

function b()
{
    window.location = "anotherPage"
};

在我的Jasmine测试中,我想要测试a(),但是我不希望发生重定向。
我尝试了:
spyOn(instance, 'b').andCallFake(function() { });

但仍然会导致重定向。可能是因为a()调用了b()而不是Jasmine调用b()


这真的是实例方法吗?b()函数似乎只是在作用域中可访问,所以a()可以调用它。但是spyOn允许您存根分配给某个对象的函数。您能否提供有关您的代码的更多信息? - zbynour
2个回答

0

只需在测试中创建一个名为spy b的函数。


谢谢您的回复。您介意再详细解释一下吗?我不是很明白您的意思。 - Derek
window.b = jasmine.createSpy('b'); - Dmitry Manannikov

0

不确定您的情况中实例是什么。假设函数b在全局上下文中,也就是window中,在这种情况下创建间谍程序:

spyOn(window, 'b');

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接