2011-03-18 13 views
7

सेवा इंटरफ़ेस easymock का उपयोग कर? नमूना कोड की सराहना की जाएगी। पैरामीटर के रूप में बहुत भ्रमित करने के रूप में आसान नकली गुजर वस्तुओं के लिए। कुछ स्पष्ट रूप से समझाते हैं कि सेवा परत का परीक्षण करने के लिए सबसे अच्छा तरीका क्या है? परीक्षण सेवा इंटरफ़ेस को इकाई परीक्षण या एकीकरण परीक्षण के रूप में माना जाएगा?सेवा परत परीक्षण

+1

शुक्रवार शाम को प्रश्न पूछना अच्छा विचार नहीं है क्योंकि कोई भी इसे सप्ताहांत में नहीं देखता है और सोमवार में वे नए प्रश्नों में व्यस्त होंगे। मुझे यकीन है कि कुछ परीक्षण गुरु निश्चित रूप से इसके लिए उत्तर और स्पष्टीकरण जानते हैं और मेरी मदद करेंगे। – kneethan

उत्तर

4

यहाँ आप जाते हैं, आप एनोटेशन के साथ JUnit 4 का उपयोग कर रहे संभालने:

import static org.easymock.EasyMock.createStrictMock; 
import static org.easymock.EasyMock.expect; 
import static org.easymock.EasyMock.replay; 
import static org.easymock.EasyMock.verify; 

public class UserAccountServiceTest 

    private UserAccountServiceImpl service; 
    private UserAccountDAO mockDao; 

    /** 
    * setUp overrides the default, We will use it to instantiate our required 
    * objects so that we get a clean copy for each test. 
    */ 
    @Before 
    public void setUp() { 
      service = new UserAccountServiceImpl(); 
      mockDao = createStrictMock(UserAccountDAO.class); 
      service.setUserAccountDAO(mockDao); 
    } 

    /** 
    * This method will test the "rosy" scenario of passing a valid 
    * arguments and retrieveing the useraccounts. 
    */ 
    @Test 
    public void testGetUserAccounts() { 

      // fill in the values that you may want to return as results 
      List<UserAccount> results = new User(); 

      /* You may decide to pass the real objects for ResultsetOptions & SortOptions */ 
      expect(mockDao.getUserAccounts(null, null) 
       .andReturn(results); 

      replay(mockDao); 
      assertNotNull(service.getUserAccounts(null, null)); 
      verify(mockDao); 
    } 

} 

तुम भी this article उपयोगी खासकर यदि आप JUnit 4 पर एक त्वरित मदद के लिए JUnit 3.

Refer this उपयोग कर रहे हैं मिल सकती है

उम्मीद है कि मदद करता है।

+0

आपकी प्रतिक्रिया के लिए धन्यवाद, इसलिए जब भी हम कुछ ऑब्जेक्ट पैरामीटर का सामना करते हैं जो इकाई परीक्षण के लिए प्रासंगिक नहीं हैं तो हम उन्हें कॉल कॉल में शून्य के रूप में बनाते हैं? – kneethan

+0

क्या इन दो तरीकों के लिए यूनिट टेस्ट केस लिखना वाकई समझ में आता है? मेरे लिए डीएओ परत को सौंपने के अलावा कुछ भी नहीं, फिर भी हमें परीक्षण करने की ज़रूरत है? – kneethan

+0

एक साधारण गेटर के लिए यह नहीं हो सकता है - हालांकि - यदि आपके पास शर्तें हैं और यदि सेवा विधि में/अन्य पथ है तो यह होगा। एक और बात यह है कि यूनिट परीक्षण का पूरा उद्देश्य इकाई को एक इकाई (इस मामले में सेवा) का परीक्षण करना है, न कि सेवा और डीएओ (जिसे एकीकरण परीक्षण कहा जाता है)। शून्य पास करने के लिए, मैंने सबसे सरल परीक्षण चुना है। लेकिन जैसा कि टिप्पणी में रखा गया है, आपको उन वस्तुओं को बनाना चाहिए (परिणामसेट्स, सॉर्टऑप्शन) भी। अगर वे तैयार नहीं हैं (यानी केवल इंटरफेस और कोई कार्यान्वयन नहीं) तो आपको उनके लिए नकली कार्यान्वयन का भी उपयोग करना पड़ सकता है। – Nilesh

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