2017-04-13 65 views
0

我想測試一個父類,它的未來將類繼承。我如何在Rspec中簡單地做到這一點?測試孩子從Rspec的繼承父類。

到目前爲止,我有這樣的:

let(:dummy_child_flow) do 
    class ChildFlow < described_class 
     operations TaxWorker, DiscountWorker 
     transitions RefundFlow, CancellationFlow 
    end 

    end 
    class TaxWorker; end 
    class DiscountWorker; end 
    class RefundFlow; end 
    class CancellationFlow; end 
end 

的dummy_child_class就是我要創建從described_class繼承的測試子類。該described_class有類方法稱爲operationstransitions是採取其他類。簡而言之,我希望看到這些類方法(位於父級)可供兒童訪問。這感覺很髒。有什麼更好的方法來設置它?

+0

這似乎很令人費解。我會將所有這些代碼移到應用程序中而不是規範中。然後你可以測試'DummyChildFlow'。 –

回答

1

如果你要檢查是類方法是給孩子訪問,您可以檢查類響應你希望它迴應的具體方法。

class A 
    def self.grin! 
    ":D" 
    end 
end 

class B < A; end 

describe B do 
    it "should have A's class methods" 
    expect(described_class).to respond_to?(:grin!) 
    end 
end