c# क्यों राइनो stubs मुझे उन पर उम्मीदों सेट करने के लिए अनुमति देते हैं?



.net unit-testing (1)

राइनो में मोजे और स्टब्स के बीच वैचारिक मतभेदों को स्पष्ट करते हुए यह प्रश्न स्पष्ट करता है: राइनो मोक्स पर mocks और stubs के बीच अंतर क्या हैं?

हालांकि मैं भ्रमित हूँ क्योंकि राइनो स्टब ऑब्जेक्ट जैसे तरीके प्रदान करते हैं। .Expect और। .VerifyAllExpectations() जब ये बिल्कुल कुछ भी नहीं करते हैं। नकली / स्टब ऑब्जेक्ट्स समान रूप से एक ही इंटरफ़ेस क्यों प्रदान करते हैं?

यह मुझे लगता है कि मैंने मौलिक कुछ याद किया है - या यह सिर्फ एक कार्यान्वयन बोली है?


इस व्यवहार का कारण IntelliSense सीमा (विस्तार विधियों पर) + Rhinomocks डिजाइन पर आधारित है (+ आग्रह पर बग) जैसा कि मैंने यहां समझाया

निम्नलिखित उदाहरण से पता चलता है कि Expect विधि में Stub पर Stub विधि से कुछ और नहीं है।

public class Foo
{
    public virtual string DoSomthing()
    {
        return String.Empty;
    }
}

[TestClass]
public class UnitTest1
{
    [TestMethod]
    public void TestMethod1()
    {

        var f = MockRepository.GenerateStub<Foo>();

        f.Expect(x => x.DoSomthing())
         .Return("2");

        f.VerifyAllExpectations();

    }
}

यदि आप ऊपर दिए गए उदाहरण को निष्पादित करेंगे तो आप देखेंगे कि परीक्षण विफल नहीं होगा (हालांकि DoSomthing कभी भी नहीं बुलाया गया था ...)





rhino-mocks