2009-07-30 14 views
0

を働いていないことは、誰かが私をmoq.SetupPropertyは、以下のコードで失敗したときに次のコードを吹くホエー言うことができる:部品番号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);'という行は、無意味なコンストラクタがインスタンスへの参照を返すか例外をスローするため、何らかの理由でnull参照を返すことはできません。 C#の仕様を参照してください。 §7.6.10.1オブジェクト作成式。 – nicodemus13

答えて

0

私がチェックしたいまず最初に確認することであるScoreEntryの性質あなたが設定しているのはアクセス可能なセッターです。言い換えれば、あなたの設定者が公開アクセス権を持っているか、少なくともあなたがmoqを使って設定しようとしている各プロパティの設定者を持っていることを確認してください。