2012-10-25 125 views
1

我使用幾乎傑夫·摩根的新書「黃瓜&奶酪」的確切相同的設置,我有一個頁面對象,像這樣爲什麼這個返回「無法轉換零到字符串」

class NewPublicationPage 
    include PageObject 
    include RSpec::Matchers 
    ... 
    def submit_basic_message_with_tag 
    @tag = Time.now.to_i 
    ... 
    self.tag_entry = @tag 
    # the tag ends up getting added later on down the road to a div container. 
    ... 
    end 

    def verify_last_tag 
    done_loading 
    # tag_list is a div container that should contain the tag. 
    tag_list.should include @tag 
    end 
end 

當我運行在Cucumber步驟中執行以下命令,每個命令都帶有自己的步驟,但失敗的原因是cannot convert nil to string。我知道它與實例變量@tag有關,但我不知道爲什麼。

When /^I submit a basic message with tags$/ do 
    on_page(NewPublicationPage).submit_basic_message_with_tag 
end 

Then /^I should see the tag under Publish History$/ do 
    visit_page(PublishHistoryPage) # goes to page with div container that holds tags 
    on_page(NewPublicationPage).verify_last_tag #this creates the error 
end 
+0

你沒有添加你的步驟代碼,但我不確定,但我會說,如果第二步失敗,這是因爲@tag是零。事實上,在'submit_basic_message_with_tag'函數中,您將爲其分配一個值,但不在第二個函數中。 – pjam

+0

我認爲你是對的,那麼我將如何從'submit_basic_message_with_tag'方法中獲取'@ tag'的值?因爲這是我需要的,並且它需要在兩種方法中保持相同的價值。 –

+0

因爲我不知道你的步驟是怎麼做的,所以很難說你如何實現這個 – pjam

回答

0

但無論如何,您只需要在嘗試閱讀它之前設置@tag。例如,你可以在verify_last_tag方法的開頭設置它,或者如果你需要它在兩個測試中都是相同的,你可以看看that post 我不是黃瓜專家,所以我不能真正幫助您。

相關問題