2013-09-05 4 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 и нормальной функции обратного вызова.

Смежные вопросы