अगर मैं निम्नलिखित कोड है:एनयूनीट के साथ व्युत्पन्न कक्षाओं में सेटअप?
[TestFixture]
public class MyBaseTest
{
protected ISessionManager _sessionManager;
[SetUp]
public void SetUp() { /* some code that initializes _sessionManager */ }
}
[TestFixture]
public class MyDerivedTest : MyBaseTest
{
IBlogRepository _repository;
[SetUp]
public void SetUp() { /* some code that initializes _repository */ }
[Test]
public void BlogRepository_TestGoesHere() { /* some tests */ }
}
... NUnit आधार सेटअप दिनचर्या फोन नहीं करता है। इसकी उम्मीद है, और मुझे इसके साथ कोई समस्या नहीं है। मैं बेस सेटअप को पहले कॉल करने के लिए व्युत्पन्न सेटअप प्राप्त कर सकता हूं, जैसे:
[TestFixture]
public class MyDerivedTest : MyBaseTest
{
IBlogRepository _repository;
[SetUp]
public new void SetUp()
{
base.SetUp();
/* some code that initializes _repository */
}
यह बदसूरत है। अगर यह एक निर्माता था, तो मुझे नहीं करना पड़ेगा।
मैं "टेम्पलेट विधि" पैटर्न इस्तेमाल कर सकते हैं, और है निम्नलिखित:
public void MyBaseTest
{
abstract void SetUp();
[SetUp]
public void BaseSetUp()
{
/* base initialization */
SetUp(); // virtual call
}
}
मैं इस का विशेष रूप से शौकीन नहीं हूँ, या तो।
जब आप अपने टेस्ट क्लास को सेटअप की आवश्यकता होती है तो आप क्या करते हैं, और वे किसी अन्य वर्ग से प्राप्त होते हैं जिसे सेटअप की भी आवश्यकता होती है?
मुझे पता है। मैं नहीं चाहता –
तब आंशिक विधि? चूंकि सेटअप को सजाया गया है और विशेषता है, मुझे यकीन नहीं है कि ऐसा करने के कई और तरीके होंगे। –
ओह। आंशिक तरीकों के बारे में नहीं सोचा था। दिलचस्प दृष्टिकोण। –