मैं xUnit.NET ढांचे का एक बड़ा प्रशंसक हूं; मुझे यह हल्का, सरल, साफ और एक्स्टेंसिबल लगता है।कक्षा को संसाधित करते समय कस्टम कोड का उपयोग करने और परीक्षण विधियों का पता लगाने के लिए xUnit.NET बढ़ाएं
अब मान लीजिए कि मैं बहुत की तरह एक वर्ग है कि करते हैं:
public class AdditionSpecification
{
static int result;
public void Because()
{
result = 2 + 2;
}
public void Result_is_non_zero()
{
Assert.True(result <> 0);
}
public void Result_is_correct()
{
Assert.Equal(4, result);
}
}
परीक्षण वर्ग के साथ
ऊपर मैं xUnit.NET 2 परीक्षण मामलों को देखने के लिए और उनमें से प्रत्येक से पहले क्योंकि() विधि चलाना चाहते हैं।
मैं XUnit बता सकते हैं कैसे:
किसी भी समस्या मेरी कक्षा या विधि के नाम के साथ हो सकता है एक तरफ छोड़कर, इस परीक्षण/विनिर्देश, xUnit.NET ढांचे, या BDD की संरचना, यहाँ मेरे सवाल है। नेट जो मैं अनुकूलित करना चाहता हूं कि यह प्रत्येक लक्ष्य परीक्षण विधि पर एक कस्टम [तथ्य] जैसी विशेषता का उपयोग करके इस वर्ग के बिना के परीक्षण विधियों को कैसे पहचानता है और निष्पादित करता है?
मुझे पता है कि मैं पहले से पहले निष्पादन के बाद और बाद में कस्टम के साथ प्रत्येक परीक्षण विधि को सजाने के लिए पहलेAfterAttribute से प्राप्त कर सकता हूं। कक्षा स्तर पर मैं यह कैसे कर सकता हूं? क्या मुझे एक कस्टम धावक लिखना है?
तुम्हारी मदद करने की कोशिश कर के लिए धन्यवाद, लेकिन इस प्रतिक्रिया सवाल है कि मैंने पूछा उत्तर नहीं मिलता है; मैं xUnit.NET को कैसे बता सकता हूं कि मैं कौन सा तरीकों को [फैक्ट] विशेषता का उपयोग किए बिना कुछ सम्मेलन के आधार पर निष्पादित करना चाहता हूं। –
मैंने जो समाधान प्रस्तावित किया है, वह प्रत्येक परीक्षण चलाने से पहले निष्पादित()) होने का प्रभाव प्राप्त करता है। मुझे एहसास है कि मैं अभी भी इसे प्राप्त करने के लिए [तथ्य] विशेषता का उपयोग कर रहा हूं। क्या मैं पूछ सकता हूं कि आप [तथ्य] का उपयोग क्यों नहीं करना चाहते हैं? – BenA
परीक्षण फिक्स्चर के लेखन से कुछ समारोह को हटाने के लिए; अगर मैं अपने परीक्षण फिक्स्चर को कोडिंग के लिए एक सम्मेलन का पालन करता हूं तो मैं उस तर्क को धावक (या एक कस्टम आईटेस्ट क्लास कमांड और रनविथ एट्रिब्यूट में, जैसा होता है) में कोड कर सकता है और सभी [तथ्य] विशेषताओं को हटा सकता है, इस प्रकार मेरे परीक्षणों को थोड़ा अधिक पठनीय बना सकता है और कोड के लिए तेज़। –