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

jasmine: Adding and reading a query string in the url?

本文关键字:读取 查询 字符串 添加 url jasmine      更新时间:2024-06-16

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

我知道如何获得cookie集,并且正在使用VanillaJS。

然而,我想用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

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

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

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

并且该代码确实从URL中读取了散列值。

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