2011-12-03 18 views
12

JUnit 3 में, मैं इस तरह वर्तमान में चल रहे परीक्षण के नाम पर मिल सकता है:वर्तमान में स्पॉक में चल रहे परीक्षण का नाम कैसे प्राप्त करें?

public class MyTest extends TestCase { 
    public void testSomething() { 
     assertThat(getName(), is("testSomething")); 
    } 
} 

मैं स्पॉक में ऐसा कैसे करते हैं? मैं एक साझा संसाधन में एक कुंजी के रूप में परीक्षण नाम का उपयोग करना चाहता हूं ताकि परीक्षण एक दूसरे के साथ हस्तक्षेप न करें।

import org.junit.Rule 
import org.junit.rules.TestName 

class MySpec extends Specification { 
    @Rule TestName name = new TestName() 

    def "some test"() { 
     expect: name.methodName == "some test" 
    } 
} 

यह JUnit 4.7 या उच्चतर की आवश्यकता:

उत्तर

18

एक समाधान JUnit के TestName नियम का लाभ उठाने के लिए है।

+1

बस आश्चर्य .. कि के उपयोग के मामले क्या है? –

+0

धन्यवाद यह मेरे लिए काम करता है जहां हमारे पास विशेष आवश्यकता है – Pushkar

+0

क्या स्क्रिप्ट सेट-अप 'डीफ़ सेटअप' से नाम और 'क्लीन क्लीनअप' के नाम से कोई तरीका है? – will

3

स्पॉक 1.0-ग्रूवी-2.4 के लिए आप की कोशिश कर सकते हैं:

def "Simple test"() { 

    expect: 
    specificationContext.currentIteration.name == "Simple test" 
} 
+0

एक ही '1.0-groovy-2.4' के साथ अच्छा काम करता है। – prayagupd