2014-09-02 201 views
0

我一直試圖在我的狂歡應用程序中運行一些單元測試,這涉及到創建一個新的命令。由於未將種子數據輸入到測試數據庫中,我遇到的第一個障礙與不加載的國家有關。在這裏發佈了一個關於它的問題,如果你想要額外的信用工作:https://github.com/spree/spree/issues/5308狂歡和單元測試

但是,爲了測試我的其他代碼,我能夠通過在測試中發明一個國家來繞過這個問題。我試圖做同樣的一個變種,但我一直運行到這個錯誤:

Error: 
VariantTest#test_variant_test: 
RuntimeError: No master variant found to infer price 
test/models/variant_test.rb:10:in `block in <class:VariantTest>' 

我創建了第二個測試,看看變種都拿到造出來的,我得到了相同的錯誤消息。這是我所運行測試:

require 'test_helper' 

class VariantTest < ActiveSupport::TestCase 
    test "variant test" do 
    f = Spree::Variant.new 
    f.cost_price = 20 
    f.sku = "test" 
    f.is_master = true 
    f.track_inventory = false 
    f.save! 

    test1 = Spree::Variant.find_by sku: "test" 
    assert_not_nil(test1, "Variant wasn't created") 
    end 
end 

我試圖創建兩種變體,其中一個是主,其中之一是沒有了,測試SKU的非主變,但我一直獲取有關主變體未找到的完全相同的錯誤消息。我錯過了什麼嗎?

回答

0

只是爲了回答你的問題:你需要爲你的變體設置price。你會得到新的錯誤,因爲你缺少product該變種等。

相信我,你真的想用FactoryGirl的默認工廠,你不必失去時間重新發明輪子。只要看看他們here或直接在variant factory,如果你對他們有任何疑問就問。

+0

是的,下一次我這樣做,我一定會使用FactoryGirl。謝謝! – Gogglor 2014-09-19 19:48:34