2014-02-25 78 views
0

在我的應用程序中有一個名爲App的模型。我試圖用ActionDispatch::IntegrationTest來測試我的應用程序。模型上集成測試類名稱衝突

FactoryGirl.define do 

    factory :app, class: App do 
    name "a_test" 
    about "magic_app" 
    app_key "1213" 
    end 

end 

然後在我的測試中,我實例化一個應用程序是這樣的::

setup do 
    @app = create(:app) 
end 

現在,當我運行測試,我得到一個

要爲測試我使用FactoryGirl這樣創建的數據錯誤,因爲已經有一個類名爲App

NoMethodError: undefined method 'call' for #<App:0x00000004c985e8>

我認爲命名空間可以解決這個問題 - 重命名模型不是一個選項 - 但我不知道該怎麼做。

回答

1

您應該重命名實例變量,例如:

setup do 
    @my_app = create(:app) 
end 
+0

這一工程!不會期望有一個叫做'app'的全局變量。 – TTT

+1

@TTT這不是一個全局變量。它是一個實例變量,但它用於'Rack'(因此是'ActionDispatch')內部。 –