2016-05-13 7 views
2

ここで私が紛失しているものを見つけようとしています。私のテストは正常に動作しますが、私のMOQ VerifyAllは例外をスローしています。MOQエラー設定がAsync/Await Unit Testと一致しない

[TestMethod] 
public async Task ActionPlanDataProvider_GetActionPlanReferenceList_ReturnsValid() 
{ 
    try 
    { 
     //Arrange 
     Mock<IActionPlanDataProvider> moqAPlan = new Mock<IActionPlanDataProvider>(); 
     //moqAPlan.Setup(x => x.GetActionPlanReferenceList()).ReturnsAsync(new ActionPlanReferenceList()); 
     moqAPlan 
      .Setup(x => x.GetActionPlanReferenceList("1")) 
      .Returns(Task.FromResult(new ActionPlanReferenceList())); 

     //Act 
     var d = await moqAPlan.Object.GetActionPlanReferenceList("1234123"); 

     //Assert 
     moqAPlan.VerifyAll(); 
    } 
    catch (Exception ex) 
    { 
     string a = ex.Message; 
     throw; 
    } 
} 

次のセットアップは...

にマッチしていなかった方法で非同期が私のMOQは嘲笑オブジェクトのメソッド呼び出しを見ていないことを実行されるため、これがある場合、私は思ったんだけど?

+0

をVAI任意の文字列を受け入れるようになる

moqAPlan .Setup(x => x.GetActionPlanReferenceList(It.IsAny<string>())) .Returns(Task.FromResult(new ActionPlanReferenceList())); 

。あなたは 'GetActionPlanReferenceList(" 1 ")'を使うようにモックを設定しましたが、 'GetActionPlanReferenceList(" 1234123 ")'を呼び出しました。だからmoqによると、あなたはセットアップを使わなかった – Nkosi

答えて

2

セットアップが使用されていない場合に発生します。モックを設定してGetActionPlanReferenceList("1")を使用し、GetActionPlanReferenceList("1234123")とします。

moqによれば、実行したものは設定したものと一致しませんでした。

あなたが期待される引数と一致するか試みることができるいずれかの方法でセットアップを使用しない場合に起こるIt.IsAny<string>()式の引数

+0

It.IsAny +1についての追加のコメントを感謝します – GPGVM

関連する問題