2013-09-05 8 views
9

में वापस कॉल करें क्या कोई नीचे दिए गए कोड को देख सकता है और क्या गलत है?एकाधिक पैरामीटर Moq

[TestInitialize] 
    public void SetupMockRepository() 
    { 
     var memberId = "34345235435354545345"; 
     var title = "test"; 
     var url = "dafdsfdsfdsfdsafd"; 

     _mockPropertySearchRepository = new Mock<IPropertySearchRepository>(MockBehavior.Strict); 
     _mockPropertySearchRepository.Setup(p => p.SaveSearchURL(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>())).Callback<string,string,string>((id,t,u) => ).Returns(new SavedSearchReturnResult()); 
    } 

धन्यवाद

+0

मैं कॉलबैक में 3 पैरामीटर पास नहीं कर सकता। – user2388013

+0

http://codereview.stackexchange.com/ से संबंधित है –

उत्तर

17

मैं इस समस्या अपने आप

[TestInitialize] 
public void SetupMockRepository() 
{ 
    var memberId = "34345235435354545345"; 
    var title = "test"; 
    var url = "dafdsfdsfdsfdsafd"; 


    _mockPropertySearchRepository = new Mock<IPropertySearchRepository>(MockBehavior.Strict); 
    _mockPropertySearchRepository 
     .Setup(p => p.SaveSearchURL(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>())) 
     .Callback<string,string,string>(
      (id, t, u) => 
      { 
       memberId = id; 
       title = t; 
       url = u; 
      }) 
     .Returns(new SavedSearchReturnResult()); 
} 
1

नीचे के रूप में प्रत्येक पैरामीटर है कि विधि लेता है, Callback विधि करने के लिए एक प्रकार पैरामीटर पारित लिए हल करने में कामयाब रहे।

someMock 
    .Protected() 
    .Setup("SomeMethod", ItExpr.IsAny<string>(), ItExpr.IsAny<string>()) 
    .Callback<string, string>((x, y) => {}); 

उपरोक्त दोनों Protected और सामान्य कॉलबैक के साथ काम करता है।