2012-08-01 2 views
2

Проще говоря, в конце концов, я хочу захватить строку запроса из URL-адреса и добавить его в свой файл cookie.jasmine: добавление и чтение строки запроса в URL-адресе?

Я знаю, как получить набор файлов cookie и использовать Vanilla JS для этого.

Однако я хочу использовать Жасмин для проверки всех неправильных случаев, а не только счастливого пути.

В любом случае, как делает один набор URL-адрес в жасмин, так что я могу передать любую строку запроса (как http://www.blah.com?ref=yayayadaydayday, так что я могу использовать его в моих тестах с использованием document.location.search и взять его оттуда?

Я угадываю все, что называется, когда ты глумился в Жасмин, но если это рельсы, я хотел бы добавить строку запроса, как:


    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

проблема в том, что вы не можете издеваться window.location в this и this SO они придумали. с передачей глобального контекста в вас, чтобы вы могли издеваться над этим.

+1

Спасибо, эти две ссылки хорошо смотрятся со многими решениями, чтобы попробовать. Я читал на жасминовой доске, вы не можете сделать это в любом случае, потому что это просто javascript. Заставляет меня думать, разве нет «реальной» тестовой структуры, которую я должен использовать, но это только циник во мне, я думаю. Благодарю. – pjammer

1

Мне недавно пришлось сделать что-то подобное, проверив некоторый код для набора вкладок, который выбирает вкладку, если установлен хэш URL-адреса. Я использовал историю API для управления URL:

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

и код действительно считывается значение хеш-функции из URL.

В моей тестовой установке используется PhantomJS. Я полагаю, что другие браузеры будут работать, если у вас нет старой IE-панели запуска.