2

简单地说,最后,我想从 url 中获取查询字符串并将其添加到我的 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
4

2 回答 2

3

问题是你不能模拟window.location。在这个这个SO 中,他们想出了在你的函数中传递全局上下文,以便你可以模拟它。

于 2012-08-02T20:24:21.940 回答
2

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

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

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

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

于 2015-12-01T12:51:18.180 回答