मैं एक पर निर्भर है कि मैं खुद को एक विधि के साथ मिल गया है ताकि कोड परीक्षण योग्य (परीक्षण और विलगन चौखटे के रूप में NUnit और RhinoMocks का प्रयोग करके) और पाया है है एक वर्ग पुनर्रचना कर रहा हूँ (यानी यह कुछ है कि द्वारा बनाई गई है पर निर्भर करता है अन्य विधि)। निम्नलिखित की तरह कुछ:क्या यह एक विधि के लिए एक कोड गंध है जो दूसरे पर निर्भर करता है?
public class Impersonator
{
private ImpersonationContext _context;
public void Impersonate()
{
...
_context = GetContext();
...
}
public void UndoImpersonation()
{
if (_context != null)
_someDepend.Undo();
}
}
जिसका मतलब है परीक्षण UndoImpersonation
, मैं Impersonate
फोन करके इसे सेट अप की जरूरत है कि (का रूप धारण पहले से ही अपने व्यवहार को सत्यापित करने के लिए कई इकाई परीक्षण है)। यह मेरे लिए बदबू आती है लेकिन कुछ अर्थों में यह है कि इस वर्ग में कॉल कोड की दृष्टि से समझ में आता है:
public void ExerciseClassToTest(Impersonator c)
{
try
{
if (NeedImpersonation())
{
c.Impersonate();
}
...
}
finally
{
c.UndoImpersonation();
}
}
मैं इस पर काम किया नहीं होता अगर मैं एक लिखने की कोशिश नहीं की थी UndoImpersonation
के लिए इकाई परीक्षण और मुझे अन्य सार्वजनिक विधि को कॉल करके परीक्षण स्थापित करने के लिए मिला। तो, क्या यह एक बुरी गंध है और यदि ऐसा है तो मैं इसके आसपास कैसे काम कर सकता हूं?
संयोग से, इस एक महत्वपूर्ण पक्ष से पता चलता - इकाई परीक्षण के लाभ: आप एक कारखाने के रूप में
Impersonator
वर्ग रख सकते (?): – sleskeहाँ यह आपको अपने डिजाइन के बारे में सोचते हैं ... :-), सहमति:) – jpoh