Moq

2011-11-23 10 views
10

के साथ स्टब कैसे बनाएं Moq का उपयोग करके मैं एक शुद्ध स्टब कैसे बना सकता हूं?Moq

[TestFixture] 
public class UrlHelperAssetExtensionsTests 
{ 
    private HttpContextBase httpContextBaseStub; 
    private RequestContext requestContext; 
    private UrlHelper urlHelper; 
    private string stylesheetPath = "/Assets/Stylesheets/{0}"; 

    [SetUp] 
    public void SetUp() 
    { 
      httpContextBaseStub = MockRepository.GenerateStub<HttpContextBase>(); 
      requestContext = new RequestContext(httpContextBaseStub, new RouteData()); 
      urlHelper = new UrlHelper(requestContext); 
    } 

    [Test] 
    public void PbeStylesheet_should_return_correct_path_of_stylesheet() 
    { 
     // Arrange 
     string expected = stylesheetPath.FormatWith("stylesheet.css"); 

     // Act 
     string actual = urlHelper.PbeStylesheet(); 

     // Assert 
     Assert.AreEqual(expected, actual); 
    } 
} 

मैं Moq का उपयोग कर MockRepository.GenerateStub<HttpContextBase>(); के लिए एक ठूंठ कैसे बना होगा: राइनो Mocks के साथ मैं इसे इस तरह किया था? या मैं सिर्फ राइनो मोक्स के साथ रहना चाहिए?

उत्तर

1
var mockHttpContext = new Mock<HttpContextBase>(); 
+0

मैं जानता हूँ कि वहाँ एक ठूंठ और नकली में एक फर्क है देखते हैं, लेकिन अपने कार्यान्वयन एक नकली या ठूंठ बनाता है? मुझे एक नकली लग रहा है? –

+3

नामकरण इस वस्तु का उपयोग करने के तरीके से संदर्भित करता है। इसलिए, यदि आप इस ऑब्जेक्ट पर कुछ भी सत्यापित नहीं करेंगे तो यह एक स्टब है, अगर आप करेंगे - यह एक नकली है। – BartoszKP

10

यहाँ आप के लिए मेरी सुझाव है:

Mock<HttpContextBase> mock = new Mock<HttpContextBase>(); 
mock.SetupAllProperties(); 

तो फिर तुम सेटअप करना है।

के लिए आगे जानकारियां homepage of the MOQ project.

+0

मुझे किस सेटअप की आवश्यकता है? मुझे बस इसे अपने कोड में इस्तेमाल करने की ज़रूरत है। मैं httpContextBaseStub किसी और जगह का उपयोग नहीं करता हूं। –

+0

आपको इसे इस तरह से सेटअप करना होगा, परीक्षण के तहत आपकी कक्षा को इसकी आवश्यकता है। यह उस इकाई परीक्षण पर निर्भर करता है जिसे आप चलाने के लिए चाहते हैं। आप इसे सामान्य रूप से कह सकते हैं। – Fischermaen

+0

मैंने अपना परीक्षण अपडेट किया है। कृपया जांचें :) –