我是新的寫軌集成測試。比方說,我有以下的情況,在如何保持瀏覽器打開(使用現有的會話)在水豚硒的每個場景
- 管理日誌。
- 創建一個新用戶。
- 爲用戶分配新角色。
因此,對於每種情況,它都會打開一個新的瀏覽器窗口(或者可能會重置會話)。 至於登錄我們正在使用第三方oauth它需要大量的時間登錄。
所以我不想登錄每個場景。一旦登錄後,它應該一個接一個地執行場景,而不要求一次又一次地登錄。但我不知道如何使用rspec和硒實現相同。
任何幫助將不勝感激。
我是新的寫軌集成測試。比方說,我有以下的情況,在如何保持瀏覽器打開(使用現有的會話)在水豚硒的每個場景
因此,對於每種情況,它都會打開一個新的瀏覽器窗口(或者可能會重置會話)。 至於登錄我們正在使用第三方oauth它需要大量的時間登錄。
所以我不想登錄每個場景。一旦登錄後,它應該一個接一個地執行場景,而不要求一次又一次地登錄。但我不知道如何使用rspec和硒實現相同。
任何幫助將不勝感激。
硒不應該打開一個新的瀏覽器窗口,每個場景(除非你明確關閉標籤在塊之後),但它應該重置爲about:blank
。至於其餘的請求,它將完全繞過功能/集成測試的意圖,其中每個測試應該與其他測試完全隔離。如果你不想爲每個測試手動登錄,你應該做的是使用你正在使用的任何auth庫的測試模式,以允許你快速登錄。
例如,如果使用OmniAuth - 見https://github.com/omniauth/omniauth/wiki/Integration-Testing
我同意,它不關閉瀏覽器,但重置會話。但對於我的情況,我不希望這樣,是否有任何方法來防止它 –
@DeepakKumarPadhy不容易 - 它具體做不到你想要的,因爲它會允許一個測試影響其他人。 –
我正在使用一些基於自定義Java的oauth庫,沒有這種測試模式。 –
Capybara.current_session.instance_variable_set(:@touched, false)
執行上述每個方案維持在會議結束後。
風險違反任何次要更新版本 –
您可以將其他測試用例移動到函數中,然後在登錄後的一個測試用例中,如果您不關心測試用例的獨立性,則可以逐個調用其餘函數。 –