2015-10-05 77 views
0

我有一个JavaScript文件,它使用location.search作为一些逻辑。我想用Karma来测试它。当我简单地设置位置(测试中的window.location.search = 'param=value')时,Karma抱怨我正在完成整页重新加载。如何将搜索参数传递给我的测试?将location.search参数传递给Jasmine(Karma)测试

+0

我最终通过模仿Angular的'$ location'服务来解决这个问题 – Jorn

回答

0

没有看到一些代码,知道你真正想要什么是有点棘手的,但它听起来像你想要某种夹具/模拟功能添加到您的测试。如果你看到另一个类似的问题的答案,你会看到它告诉你保持测试为“单元”。

Similar post with Answer

这意味着,我们是不是真正关心测试的Window对象,我们假设Chrome或Firefox厂商会这么做就好了我们。在您的测试中,您将能够检查并回应您的模拟对象,并根据您的逻辑进行调查。 当在实时代码中运行时 - 如图所示 - 实际移交位置的最后一步由浏览器处理。

换句话说,你只是检查你的位置设置逻辑,没有其他功能。我希望这可以为你工作。