2013-12-12 75 views
1

rspec功能測試如何隱式知道使用頁面對象中的方法,如find,withinfill_inRSpec頁面變量

我已經爲我的一些rspec測試編寫了一個助手類,並且想要使用這些方法,並且意識到我需要將頁面對象傳入該方法,然後使用page.find等。

+0

我的意思是說除了「_page_頁面對象到方法」以外的東西嗎? –

+0

想要說通過** – kddeisz

回答

1

RSpec通過在需要這些方法的情況下包含Capybara::DSL來實現此目的。該模塊是非常優雅的,如果你想看看https://github.com/jnicklas/capybara/blob/f83edc2a515a3a4fd80eef090734d14de76580d3/lib/capybara/dsl.rb

+0

那麼,有沒有辦法讓我的幫手能夠訪問相同的頁面對象而無需將其傳入? – kddeisz

+0

正如您在之前的評論中所說的那樣,我相信這確實就像向您的幫手添加「包括Capybara :: DSL」一樣簡單。 –

+0

不錯!謝謝您的幫助。 – kddeisz

0

假設要包括以下模塊:

module MailerMacros 
    def last_email 
    ActionMailer::Base.deliveries.last 
    end 

    def reset_email 
    ActionMailer::Base.deliveries = [] 
    end 
end 

,包括他們,只需撥打config.include(MailerMacros),像這樣:

RSpec.configure do |config| 
    config.include(MailerMacros) 
end 

現在,您應該可以撥打reset_email() & last_email而不是MailerMacros::reset_email()