2013-09-05 2 views
0

Я просто выполнял модульный тест moq, как показано ниже.Moq Match аргумент возвращает null

Не удалось выполнить тест из-за неправильной настройки.

Может ли кто-нибудь дать мне подсказку, почему установка неправильная?

[TestInitialize] 
    public void SetupMockRepository() 
    { 
     _mockPropertySearchRepository = new Mock<IPropertySearchRepository>(MockBehavior.Strict); 
     var linkIdHash = new PropertyIdLinkIdHash() { CountryCode = "AU", LinkIdHash = "4567890", PropertyId = "5234526" }; 
     //Get details 
     _mockPropertySearchRepository.Setup(mq => mq.GetPropertyDetails(It.Is<PropertyIdLinkIdHash>(p => p == linkIdHash))).Returns(new Roots()); 

     this.MockPropertySearchRepository = _mockPropertySearchRepository.Object; 

    } 

    /// <summary> 
    /// Testing object pattern 
    /// </summary> 
    [TestMethod] 
    public void Can_Get_Property_Details_AU() 
    { 
     var linkIdHash = new PropertyIdLinkIdHash() { CountryCode = "AU", LinkIdHash = "4567890", PropertyId = "5234526" }; 
     var result = MockContext.GetPropertyDetails(linkIdHash); 

     Assert.IsNotNull(result);  
    } 
} 

Благодаря

ответ

0

я решил его сам, как показано ниже.

[TestInitialize] 
    public void SetupMockRepository() 
    { 
     var linkIdHash = new PropertyIdLinkIdHash() { CountryCode = "AU", LinkIdHash = "4567890", PropertyId = "5234526" }; 
     var root = GetPropertyDetails(); 
     _mockPropertySearchRepository = new Mock<IPropertySearchRepository>(MockBehavior.Strict); 
     _mockPropertySearchRepository.Setup(c => c.GetPropertyDetails(It.IsAny<PropertyIdLinkIdHash>())) 
       .Callback<PropertyIdLinkIdHash>((obj) => linkIdHash = obj) 
       .Returns(new Roots() 
       { 

       } 

       ); 

     this.MockPropertySearchRepository = _mockPropertySearchRepository.Object; 
    } 
Смежные вопросы