2012-06-12 6 views
9

के लिए एक स्पॉक-जैसी परीक्षण लाइब्रेरी है मैंने स्पॉक के साथ काम किया है और 'कहां' खंड पसंद किया है, जो आपको कई इनपुट और आउटपुट के साथ आसानी से परीक्षण केस का उपयोग करने की अनुमति देता है। उदाहरण के लिए:क्या पाइथन

class HelloSpock extends spock.lang.Specification { 
    def "length of Spock's and his friends' names"() { 
     expect: 
      name.size() == length 

     where: 
      name  | length 
      "Spock" | 5 
      "Kirk" | 4 
      "Scotty" | 6 
    } 
} 

क्या पाइथन के लिए कुछ समान है?

+0

क्या आपको नीचे दिए गए उत्तर उपयोगी हैं? –

उत्तर

3

pytest parametrise a test function करने की अनुमति देता:

import pytest 
@pytest.mark.parametrize(("input", "expected"), [ 
    ("3+5", 8), 
    ("2+4", 6), 
    ("6*9", 42), 
]) 
def test_eval(input, expected): 
    assert eval(input) == expected 
2

आप कुछ परीक्षण की तुलना में अधिक है, तो मैं behave की तरह एक BDD ढांचे की सिफारिश करेंगे। लेखन अजगर कोड काफी आसान है

@given('a set of specific users') 
def step_impl(context): 
    for row in context.table: 
     model.add_user(name=row['name'], department=row['department']) 

, और कई देखते हैं:

Scenario: some scenario 
    Given a set of specific users 
    | name  | department | 
    | Barry  | Beer Cans | 
    | Pudey  | Silly Walks | 
    | Two-Lumps | Silly Walks | 

When we count the number of people in each department 
Then we will find two people in "Silly Walks" 
    But we will find one person in "Beer Cans" 

और यह पार्स करने के लिए एक अजगर कोड, जैसे: आप एक Gherkin syntax, जैसे (लिंक किए गए ट्यूटोरियल से कोड) निर्दिष्ट बॉयलरप्लेट कोड उदाहरण ऑनलाइन। इस तकनीक में सौंदर्य यह है कि आपका परीक्षण सूट अत्यधिक उपयोग करने योग्य है, और इसे गैर-प्रोग्रामर द्वारा आसानी से बढ़ाया जा सकता है।

2

नहीं, ऐसा नहीं है। जो दुखद है क्योंकि स्पॉक वास्तव में उत्कृष्ट है। मैं अब एक साल की तलाश कर रहा हूं और इस बात पर सोचा है कि पाइथन में ऐसा डीएसएल बनाने के लिए क्या होगा, क्योंकि मुझे इससे बहुत याद आती है।

बेहेव और लेटस आपको बीडीडी शैली वाक्यविन्यास और मुहावरे मिलेगा लेकिन आपको अपनी परिदृश्य फ़ाइलों से मेल खाने वाली अलग-अलग चरण फ़ाइलों को बनाए रखना होगा। स्पष्ट रूप से यह तब होता है जब आप टीडीडी करना चाहते हैं लेकिन बीडीडी की पठनीयता है जो स्पॉक सक्षम करता है।

यदि आप स्पॉक शैली के मॉक्स भी चाहते हैं तो Mox मुझे सबसे नज़दीक मिला है। लेकिन एक बार जब आप स्पॉक द्वारा खराब हो जाते हैं तो यह एक खराब विकल्प है।