ठीक है, मैं जानता हूँ कि राइनो Mocks में नए एएए वाक्य रचना से अधिक भ्रम की स्थिति का एक बहुत हो रही है, लेकिन मैं ईमानदारी से करने के लिए है से क्या मैं अब तक, देखा है मैं पसंद। यह बेहतर पढ़ता है, और कुछ कीस्ट्रोक पर बचाता है।राइनो Mocks - स्टब .Expect बनाम .AssertWasCalled
असल में, मैं ListController
का परीक्षण कर रहा हूं जो मूल रूप से चीजों की कुछ सूचियों का प्रभारी होगा :) मैंने अंततः एक इंटरफ़ेस बनाया है जो अंततः डीएएल बन जाएगा, और यह निश्चित रूप से अब के लिए दबाया जा रहा है।
(manager
परीक्षण के अंतर्गत प्रणाली है, data
टोंटदार डेटा इंटरफेस है)
[Fact]
public void list_count_queries_data()
{
data.Expect(x => x.ListCount(1));
manager.ListCount();
data.VerifyAllExpectations();
}
इस परीक्षण का मुख्य उद्देश्य सिर्फ यह सुनिश्चित करें कि प्रबंधक है:
मैं निम्नलिखित कोड था वास्तव में डीएएल पूछताछ। ध्यान दें कि दाल वास्तव में भी वहाँ नहीं है, इसलिए कोई 'असली' मूल्य वापस आ रहा है ..
हालांकि, इस के बाद से मैं, उम्मीद बदलने के लिए एक वापसी मान की आवश्यकता की तरह विफल हो रहा है:
data.Expect(x => x.ListCount(1)).Return(1);
यह तो ठीक चलेगा, और परीक्षा उत्तीर्ण करेंगे, तथापि - क्या मुझे भ्रमित कर रहा है कि समय में इस बिंदु पर, वापसी मान कुछ भी नहीं का मतलब है। मैं इसे 100, 50, 42 में बदल सकता हूं, जो कुछ भी और परीक्षा हमेशा पास हो जाएगी?
यह मुझे परेशान करता है, क्योंकि एक परीक्षण स्पष्ट होना चाहिए और यदि अपेक्षित स्थितियों को सही नहीं मिला है तो पूरी तरह विफल होना चाहिए?
मैं करने के लिए परीक्षण बदलते हैं ("1" की उम्मीद आईडी गिनती से जुड़ा हुआ है):
[Fact]
public void list_count_queries_data()
{
manager.ListCount();
data.AssertWasCalled(x => x.ListCount(1));
}
यह सब ठीक गुजरता है, और मैं AssertWasNotCalled
करने के लिए इसे के सिर पर परीक्षण स्विच करते हैं, यह उम्मीद के रूप में विफल रहता है .. मुझे यह भी लगता है कि यह बहुत बेहतर पढ़ता है, परीक्षण के बारे में स्पष्ट है और सबसे महत्वपूर्ण रूप से पास और असफल होने की उम्मीद है!
तो, क्या मुझे पहले कोड उदाहरण में कुछ याद आ रही है? स्टब्स पर दावा करने पर आपके विचार क्या हैं? (वहाँ, कुछ रोचक चर्चा here था मैं व्यक्तिगत रूप से this response पसंद आया।
सहमत - हेड-अप के लिए धन्यवाद, बहुत पुराना सवाल जो धूल में खो गया था। टेस्ट डबल की उम्मीद और राज्य-आधारित परीक्षण –