2013-09-05 5 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

は私がCallbackメソッドに型パラメータを渡す、方法がかかる各パラメータについて

[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

以下のような問題を自分で解決するために管理しました。

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

上記は、Protectedと通常のコールバックの両方で機能します。

関連する問題