2011-08-10 16 views
5

का उपयोग करके कई परीक्षणों में सेटअप कैसे साझा करें मैं स्पॉक के लिए नया हूं और सेटअप को देखा है: विनिर्देश में चरण उस विशिष्ट परीक्षण के लिए स्थानीय स्थान पर है। मैं परंपरागत जूनिट दृष्टिकोण के समान इन फिक्स्चर में सेटअप कैसे साझा कर सकता हूं?स्पॉक फ्रेमवर्क w/groovy

धन्यवाद!

def "setup with spock"() { 
    setup: 
    def message = new FooMessage() 
    def sut = new FooProcessor() 
    def builder = Mock(FooBuilder) 
    sut.setBuilder(builder) 

    when: 
    builder.buildFooUsing(_) >> {"bar"} 
    def result = sut.process(message) 

    then: 
    assert result == "bar" 
    } 

उत्तर

4

आप setupSpec (का उपयोग करना चाहिए) या @Shared एनोटेशन को देखने के लिए यदि आप परीक्षण भर में एक वस्तु साझा करना चाहते हैं

1

स्पॉक प्रलेखन

1.3.4 पुनरावृत्ति के बीच वस्तुओं की साझेदारी से

पुनरावृत्तियों के बीच किसी ऑब्जेक्ट को साझा करने के लिए, इसे @ शेरड या स्थिर फ़ील्ड में रखा जाना चाहिए।

नोट: केवल @Shared और स्थैतिक चर एक जहां से एक्सेस किया जा सकता है: ब्लॉक।

ध्यान दें कि ऐसी वस्तुओं को अन्य विधियों के साथ भी साझा किया जाएगा। वर्तमान में एक ही विधि के पुनरावृत्तियों के बीच ऑब्जेक्ट को साझा करने का कोई अच्छा तरीका नहीं है। यदि आप इसे एक समस्या मानते हैं, तो प्रत्येक विधि को अलग spec में डालने पर विचार करें, जिनमें से सभी को एक ही फ़ाइल में रखा जा सकता है। यह कुछ बॉयलरप्लेट कोड की लागत पर बेहतर अलगाव प्राप्त करता है।

संबंधित मुद्दे