2009-07-30 3 views
0

를 작동하지 않는 것은 누군가가 나를 moq.SetupProperty 아래 코드에 실패하면 다음 코드가 불면 유청 말할 수 :MOQ SetupProperty

[TestMethod] 
public void SimulatorService_Returns_HighScores() 
{ 
    IScoreService scoreService = new ScoreService(MockScoreRepository.GetMockScoreRepository()); 
    Assert.IsNotNull(scoreService); 
    var highScores = scoreService.GetHighScores(); 
    Assert.IsTrue(highScores.Count > 0); 
} 


public static class MockScoreRepository 
{ 

    public static ScoreEntry GetMockScoreEntry(int seed) 
    { 
     var moq = new Mock<ScoreEntry>(); 

     moq.SetupProperty(s => s.UserID, seed); 
     moq.SetupProperty(s => s.Score, 10 * seed); 
     moq.SetupProperty(s => s.EntryDate, DateTime.Now); 

     return moq.Object; 
    } 

    public static IScoreRepository GetMockScoreRepository() 
    { 
     var scores = new List<ScoreEntry>(); 
     for (var i = 0; i < 20; i++) 
     { 
      scores.Add(GetMockScoreEntry(i)); 
     } 

     var repository = new Mock<IScoreRepository>(); 
     repository.Setup(r => r.GetScores()).Returns(scores.AsQueryable()); 

     return repository.Object; 
    } 
} 
+0

예외를 게시 하시겠습니까? –

+0

재현하려고했으나하지 못했습니다. 그 오류와 선을 게시 할 수 있습니까? 또한 관련 클래스 및 인터페이스의 선언. – vidstige

+0

'Assert.IsNotNull (scoreService);'줄은 무의미합니다 - 생성자가 인스턴스에 대한 참조를 반환하거나 예외를 throw하므로 생성자가 아무래도 null 참조를 반환 할 수 없습니다. C# 스펙을 참조하십시오. §7.6.10.1 객체 생성 표현. – nicodemus13

답변

0

내가 확인했던 제일 먼저 확인하는 것입니다 ScoreEntry의 특성 당신이 접근 할 수있는 세터를두고 있습니다. 즉, 설정자가 공개 액세스 권한을 갖고 있는지 또는 moq를 통해 설정하려는 각 속성에 대한 설정자가 적어도 있는지 확인하십시오.