2010-05-26 16 views
7

मैं इस वर्ग के लिए एक परीक्षण लिखने के लिए अपनी बुलाया रिसीवर कोशिश कर रहा हूँ:परीक्षण लेखन के साथ की आवश्यकता है

@Test 
    public void testReceivePerson(){ 
     context.checking(new Expectations() {{   
      receiver.get(person); 
      atLeast(1).of(person).getId(); 
      will(returnValue(String.class));   
     }}); 
    } 

नोट:

public void get(People person) { 
      if(null != person) { 
       LOG.info("Person with ID " + person.getId() + " received"); 
       processor.process(person); 
      }else{ 
       LOG.info("Person not received abort!"); 
       } 
     } 

यहाँ परीक्षण है रिसीवर उदाहरण है रिसीवर क्लास (वास्तविक नकली) का, प्रोसेसर प्रोसेसर क्लास (असली नकली नकल) का उदाहरण है जो व्यक्ति (लोगों की कक्षा का नकली वस्तु) को संसाधित करता है। GetId एक स्ट्रिंग नहीं है int विधि है कि गलती नहीं है।

टेस्ट में विफल रहता है: person.getId() की अप्रत्याशित मंगलाचरण

मैं jMock उपयोग कर रहा हूँ किसी भी मदद की सराहना की जाएगी। जैसा कि मैंने समझा कि जब मैं इसे get विधि को सही तरीके से निष्पादित करने के लिए कहता हूं तो मुझे person.getId() पर नकल करने की आवश्यकता है, और मैं थोड़ी देर के लिए सर्कल में घूम रहा हूं, अब किसी भी मदद की सराहना की जाएगी।

उत्तर

4

यदि मैं सही ढंग से समझता हूं, तो आपको लाइन receiver.get (व्यक्ति) को स्थानांतरित करना होगा; संदर्भ के दायरे के बाद। जांच - क्योंकि यह आपके परीक्षण का निष्पादन है और उम्मीद स्थापित नहीं कर रहा है। तो यह एक एक जाना दे:,

@Test 
public void testReceivePerson(){ 
    context.checking(new Expectations() {{   
     atLeast(1).of(person).getId(); 
     will(returnValue(String.class));   
    }}); 
    receiver.get(person); 
} 
+0

धन्यवाद, इसके साथ ही एक ही सौदा। मैंने वास्तव में एक समस्या हल की, मैं अब जवाब पोस्ट करूंगा, मैंने कई गलतियां की हैं। – London

1

इसके अलावा, आप कम से कम के बजाय) की अनुमति के उपयोग करना चाहिए ((1), जब से तुम व्यक्ति वस्तु यहां छोटा करते रहे हैं। अंत में, यदि व्यक्ति सिर्फ एक मूल्य प्रकार है, तो कक्षा का उपयोग करना बेहतर हो सकता है।

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