2017-02-06 7 views
6

में निर्भरता इंजेक्शन का उपयोग कैसे करें मैं कोटलिन, स्प्रिंग और स्पेक का उपयोग करके सरल माइक्रोस्कोप को कार्यान्वित कर रहा हूं। मैं अपने भंडार का परीक्षण करना चाहता हूं लेकिन मुझे आश्चर्य है कि मैं स्पेक टेस्ट केस में रेपो कैसे इंजेक्ट कर सकता हूं। हर उदाहरण या इस तरह नया संदर्भ बनाने पर ट्यूटोरियल आधार:स्पेक परीक्षण

object SampleTest : Spek({ 
    describe("a calculator") { 
     val calculator = SampleCalculator() 

     it("should return the result of adding the first number to the second number") { 
      val sum = calculator.sum(2, 4) 
      assertEquals(6, sum) 
     } 

     it("should return the result of subtracting the second number from the first number") { 
      val subtract = calculator.subtract(4, 2) 
      assertEquals(2, subtract) 
     } 
    } 
}) 

summup करने के लिए मैं इस तरह sth क्या करना चाहते हैं न:

val calculator = SampleCalculator() 

मैं हासिल करना चाहते हैं इस

@Autowired 
val calculator: SampleCalculator 

लेकिन मैं उस becasue के लिए नहीं कर सकता मैं स्थानीय चर में सेवा autowire कर सकते हैं .. कोई समाधान? मैं कोटलिन और spek में नया हूँ।

+0

का संभावित हल है कि मैं तुरंत की कोशिश कर सकते हैं सुझाव है एक स्थानीय [ 'object' अभिव्यक्ति] है (https://kotlinlang.org/docs/reference/object- declarations.html # ऑब्जेक्ट-एक्सप्रेशन) इसमें '@ ऑटोवायर' संपत्ति के साथ। क्या यह काम करता है? – hotkey

उत्तर

0

lateinit साथ यह प्रयास करें:

@Autowired 
lateinit var calculator: SampleCalculator 
संबंधित मुद्दे