2012-04-03 9 views
6

मैं अपने वेब ऐप के लिए कुछ टेस्ट केस लिखना चाहता हूं, लेकिन कुछ मामलों में अटक गया जैसे "यह टोकन 30 दिनों में समाप्त हो जाना चाहिए"। परीक्षण समाप्त होने से 30 दिन पहले किसी को भी इंतजार करना पसंद नहीं है।"30 दिनों की समाप्ति" जैसी चीजों का परीक्षण करने के लिए टेस्टकेस कैसे लिखें?

वहाँ भी तो होना ही कुछ अनुसूचित घटनाओं, जैसे आदि "2 सप्ताह उपयोगकर्ता के बाद इस ईमेल भेजें लिए साइन अप", "2 दिन अगले बिलिंग दिनांक से पहले एक बिल जनरेट करें",

क्या सुझाव के बारे में अन्य मामलों रहे हैं क्या आपके पास ऐसे टेस्ट केस लिखने हैं? या, क्या यह सुनिश्चित करने का एक और तरीका है कि ये कार्य ठीक तरह से डिजाइन किए गए हैं?

उत्तर

4

इन परीक्षणों को लिखते समय मेरा दृष्टिकोण मिलीसेकंड में समाप्ति को परिभाषित करना है। इस तरह आप आसानी से परीक्षण लिख सकते हैं क्योंकि आपके परीक्षण वातावरण 1 एमएस की समाप्ति को परिभाषित कर सकते हैं। उत्पादन वातावरण स्पष्ट अवधि को स्पष्ट रूप से परिभाषित करेगा। आमतौर पर इन्हें कॉन्फ़िगरेशन मान या डीबी मान के रूप में सेट किया जा सकता है।

+0

सहमत हुए। इस तरह के मामलों का परीक्षण करने में सक्षम होने के लिए उत्पादन के मुकाबले आपको वास्तव में देव और क्यूए में विभिन्न नियमों की आवश्यकता होगी। – mydoghasworms

0

कार्यक्षमता को तोड़ें और व्यक्तिगत चरणों का परीक्षण करें।

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

यह एक निश्चित अंतराल के बाद भेजे जाने वाले ईमेल पर लागू होता है।

1

मैं आप की तरह

if(token.ExpirationDateTime > DateTime.Now) 
{ 
    // do some job to expire 
} 

आमतौर पर मैं प्रकार Func<DateTime> का एक इंजेक्शन क्षेत्र के साथ इस तरह के तर्क के साथ कक्षाएं प्रदान करते हैं कुछ कोड है लगता है। उदाहरण

public class ExpirationManager 
{ 
    private Func<DateTime> _nowProvider; 

    public ExpirationManager(Func<DateTime> nowProvider) 
    { 
    _nowProvider = nowProvider; 
    } 
} 

के लिए फिर समाप्ति कोड लग रहा है

तरह
if(token.ExpirationDateTime > _nowProvider()) 
{ 
    // do some job to expire 
} 

इस तरह से आप आप चाहते हैं जो कुछ भी datatime जब परीक्षण (जैसे इकाई परीक्षण) कर रही के साथ वास्तविक मौजूदा सिस्टम का समय स्थानापन्न कर सकते हैं।

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