2012-08-01 50 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.locationthisthis所以他們走了過來。在全球範圍內傳遞你的功能,你就可以嘲笑它

+1

謝謝,這兩個鏈接看起來不錯,有許多解決方案可以嘗試。我在茉莉花板上閱讀,反正你不能這麼做,因爲它只是javascript。讓我想,是不是有一個我應該使用的「真正的」測試框架,但這只是我猜測中的憤世嫉俗者。謝謝。 – pjammer 2012-08-02 22:49:32

1

我最近不得不做一些類似的事情,爲一組選項卡測試一些代碼,如果設置了URL哈希值,它將選擇一個選項卡。我使用歷史API來操縱網址:

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

並且代碼確實從URL中讀取散列值。

我的測試設置使用PhantomJS。我想其他瀏覽器可以工作,除非你有一箇舊的IE啓動器。