तो मैं एक विधि के साथ एक वर्ग के रूप में निम्नानुसार है:मैं कैसे इकाई परीक्षण कैशिंग की तरह एक कार्यान्वयन विस्तार
public class SomeClass
{
...
private SomeDependency m_dependency;
public int DoStuff()
{
int result = 0;
...
int someValue = m_dependency.GrabValue();
...
return result;
}
}
और मैं तय कर लिया है कि m_dependency.GrabValue()
हर बार फोन करने के लिए करने के बजाय, मैं वास्तव में कैश करना चाहते हैं मेमोरी में मूल्य (यानी इस वर्ग में) क्योंकि हम हर बार वही मूल्य प्राप्त करने जा रहे हैं (निर्भरता बंद हो जाती है और उस तालिका से कुछ डेटा पकड़ लेती है जो शायद ही कभी बदलती है)।
हालांकि मैं एक इकाई परीक्षण में इस नए व्यवहार का वर्णन करने की कोशिश कर रहा हूं, हालांकि मैंने समस्याओं में भाग लिया है। मैं निम्नलिखित (मैं RhinoMocks साथ NUnit उपयोग कर रहा हूँ) की कोशिश की है:
[Test]
public void CacheThatValue()
{
var depend = MockRepository.GeneraMock<SomeDependency>();
depend.Expect(d => d.GrabValue()).Repeat.Once().Return(1);
var sut = new SomeCLass(depend);
int result = sut.DoStuff();
result = sut.DoStuff();
depend.VerifyAllExpectations();
}
हालांकि यह काम नहीं करता है; यह परीक्षण कार्यक्षमता में किसी भी बदलाव को शुरू किए बिना भी गुजरता है। मैं क्या गलत कर रहा हूं?
प्रश्न पूछने के लिए खेद है, लेकिन कुछ ऐसा परीक्षण क्यों करें जो कार्यान्वयन विस्तार है? – Robert