द्वारा प्रत्येक जेनरेट किए गए परीक्षण के लिए दावा जोड़ने के लिए यहां मैं एक उदाहरण के द्वारा इस मुद्दे को समझाने जा रहा हूं। मूल प्रश्न समस्या को और अधिक संक्षेप में प्रस्तुत करता है। हालांकि इसे पढ़ने की जरूरत नहीं है।Intellitest
अद्यतन: एक उदाहरण
के रूप में प्रश्न मान लीजिए कि हम int [] के मिनट खोजने के लिए इस गाड़ी समारोह को लागू किया है:
:public int MyMin(int[] data)
{
int min = 1000;
for (int i = 1; i < data.Length; i++)
{
if (data[i] < min)
{
min = data[i];
}
}
return min;
}
इस समारोह पर Intellitest चल रहा है हमें देता है
परीक्षण # 4 और # 6 के लिए नोट यह कार्य अपने बग्गी कार्यान्वयन के कारण सही ढंग से न्यूनतम मूल्य की गणना नहीं कर रहा है। हालांकि, ये परीक्षण गुजर रहे हैं जो वांछित नहीं है।
इंटेलिटेस्ट जादुई रूप से MyMin
के हमारे इच्छित व्यवहार को निर्धारित नहीं कर सकता है और इन इनपुट पर विफल होने के लिए परीक्षण तैयार कर सकता है। हालांकि, अगर हम इन परीक्षणों के लिए वांछित परिणाम मैन्युअल रूप से निर्दिष्ट कर सकते हैं तो यह बहुत अच्छा होगा।
@ michał-komorowski का समाधान व्यवहार्य है, लेकिन प्रत्येक परीक्षण मामले के लिए मुझे PexAssume
एस के संदर्भ में अपना इनपुट दोहराना होगा। परीक्षण इनपुट के लिए वांछित आउटपुट निर्दिष्ट करने के लिए एक और अधिक स्पष्ट/साफ तरीका है?
मूल प्रश्न
Intelitest एक पैरामिट्रीकृत परीक्षण है कि परिवर्तनीय और सामान्य/वैश्विक कथनों वहाँ जोड़ा जा सकता है उत्पन्न करता है। यह कोड कवरेज को अधिकतम करने वाले न्यूनतम इनपुट भी उत्पन्न करता है। Intellitest व्यक्तिगत यूनिट परीक्षण के रूप में इनपुट स्टोर करता है, प्रत्येक एक पैरामीटर परीक्षण को एक तैयार किए गए इनपुट के साथ बुलाता है।
मैं प्रत्येक इनपुट के प्रति दावा जोड़ने का एक तरीका ढूंढ रहा हूं।
चूंकि प्रत्येक इनपुट को .g.cs फ़ाइल में इकाई परीक्षण फ़ंक्शन के रूप में संग्रहीत किया जाता है, तो दावा वहां जोड़ा जा सकता है। समस्या यह है कि इन कार्यों को उपयोगकर्ता द्वारा अनुकूलित नहीं किया जाना चाहिए क्योंकि वे इसके बाद के रनों में इंटेलिटेस्ट द्वारा ओवरराइट किए जाएंगे।
प्रत्येक इकाई परीक्षण के लिए दावा जोड़ने का अनुशंसित तरीका क्या है?
हाय माइकल। हालांकि यह सामान्य परिस्थितियों के लिए दावे जोड़ने के लिए सहायक हो सकता है (उदाहरण के लिए आपके उदाहरण में सरणी लंबाई), लेकिन यह 'PexAssume' द्वारा प्रत्येक परीक्षण इनपुट निर्दिष्ट करने के लिए बोझिल और दोहराव है। कृपया अद्यतन प्रश्न पर एक नज़र डालें जहां मैं एक उदाहरण प्रस्तुत करता हूं। – Isaac