2011-01-02 10 views
6

मैं बीडीडी शैली में परीक्षणों का वर्णन करना चाहता हूं उदा। FlatSpec के साथ लेकिन JUnit को एक परीक्षण धावक के रूप में रखें।क्या जुनीट पर्यावरण में स्कैलाटेस्ट बीडीडी वाक्यविन्यास का उपयोग करना संभव है?

ScalaTest त्वरित आरंभ इस के किसी भी उदाहरण दिखाने के लिए प्रतीत नहीं होता:

http://www.scalatest.org/getting_started_with_junit_4

मैं पहली बार भोलेपन से करने की कोशिश की @Test तरीकों के भीतर परीक्षण लिखने के लिए, लेकिन वह काम नहीं करता और दावा परीक्षण कभी नहीं किया गया है :

@Test def foobarBDDStyle { 
    "The first name control" must "be valid" in { 
     assert(isValid("name·1")) 
    } 
    // etc. 
} 

क्या यह हासिल करने का कोई तरीका है? यदि नियमित परीक्षणों को मिश्रित किया जा सकता है और बीडीडी-स्टाइल परीक्षणों से मेल खाया जाता है तो यह बेहतर होगा।

उत्तर

11

जिस तरह से आप शायद ऐसा करना चाहते, इस तरह @RunWith एनोटेशन उपयोग करने के लिए है: यहाँ एक उदाहरण है FlatSpec को JUnit परीक्षण सूट के रूप में चलाएं।

+0

क्या डिफ़ॉल्ट रूप से JUnitRunner के साथ सभी ScalaTests चलाने के लिए संभव है? कारण: हम Gradle से परीक्षण चलाने के लिए चाहते हैं, और स्पष्ट रूप से, JUnitRunner बेहतर एकीकरण क्षमताओं प्रदान करता है। –

6

आपको def एस और @Test एनोटेशन की आवश्यकता नहीं है।

import org.junit.runner.RunWith 
import org.scalatest.junit.JUnitRunner 
import org.scalatest.FlatSpec 

@RunWith(classOf[JUnitRunner]) 
class MySuite extends FlatSpec { 
    "The first name control" must "be valid" in { 
     assert(isValid("name·1")) 
    } 
} 

JUnit 4 ScalaTest के JUnitRunner का उपयोग करेगा:

import org.scalatest.junit.JUnitRunner 
import org.junit.runner.RunWith 
import org.scalatest.FlatSpec 
import org.scalatest.junit.ShouldMatchersForJUnit 

@RunWith(classOf[JUnitRunner]) 
class SpelHelperSpec extends FlatSpec with ShouldMatchersForJUnit { 

    "SpelHelper" should "register and evaluate functions " in { 
    new SpelHelper() 
     .registerFunctionsFromClass(classOf[Functions]) 
     .evalExpression(
     "#test('check')", new {}, classOf[String]) should equal ("check") 
    } 

    it should "not register non public methods " in { 
    val spelHelper = new SpelHelper() 
     .registerFunctionsFromClass(classOf[Functions]) 
    evaluating { spelHelper.evalExpression("#testNonPublic('check')", 
     new {}, classOf[String]) } should produce [SpelEvaluationException] 
    } 
} 

Source

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