jasmine:在url中添加和读取查询字符串?

时间:2012-08-01 20:34:49

标签: javascript jasmine

简单地说,最后,我想从网址中获取查询字符串并将其添加到我的cookie中。

我知道如何设置cookie并使用Vanilla JS。

但是我想用Jasmine来测试所有错误的情况而不只是快乐的路径。

无论如何,如何设置Jasmine中的url,以便我可以传递任何查询字符串(如http://www.blah.com?ref=yayayadaydayday,以便我可以在我的测试中使用document.location.search并从那里获取它?

我猜你在Jasmine中模拟时调用的是什么,但是如果这是rails,我会添加一个查询字符串,如:


  test "can get some results" do
    get :show, :q => shops(:one).name #how do i add this 'q' string in jasmine?!
    refute_nil assigns(:search)
  end

2 个答案:

答案 0 :(得分:3)

问题在于你无法模仿window.location。在thisthis中,他们想出了在函数中传递全局上下文,以便您可以模拟它。

答案 1 :(得分:2)

我最近不得不做类似的事情,为一组选项卡测试一些代码,如果设置了URL哈希,则选择一个选项卡。我使用历史API来操作URL:

loadFixtures('tabs-fixtures.html');
window.history.replaceState(null, null, '#three');

并且代码确实从URL中读取了哈希值。

我的测试设置使用了PhantomJS。我想其他浏览器都可以工作,除非你有一个旧的IE启动器。