Moq - It.IsAny () は常に null を返します 質問する

Moq - It.IsAny () は常に null を返します 質問する

呼び出しごとに null が返される原因は何でしょうかIt.IsAny<string>()? null 以外の文字列を返すように設計されていると想定するのは間違っていますか?

使用法は次のとおりです。Login メソッドは、2 番目の引数 (接続文字列) が null の場合に ArgumentNullException をスローします。私は、It.IsAny<string>()ArgumentNullException をバイパスする null 以外の文字列を提供するものと想定していました。

var mockApiHelper = new Mock<ApiHelper>();
mockApiHelper.Setup(m => m.Connect(It.IsAny<string>(), 
                                   It.IsAny<string>(), 
                                   It.IsAny<string>()));

var repositoryPlugin = new RepositoryPlugin(mockApiHelper.Object);
repositoryPlugin.Login(new CredentialsInfo(), It.IsAny<string>());

Assert.IsTrue(repositoryPlugin.LoggedIn, 
    "LoggedIn property should be true after the user logs in.");

ベストアンサー1

良い、It.IsAny<TValue>呼び出しの結果を返すだけですMatch<TValue>.Create- は を返しますdefault(TValue)。これはどの参照型でも null になります。

しかし、本当に正しいオブジェクトで呼び出しているかどうかは明らかではありません。モック実際のコードではなく?

私が見たサンプルはすべて、通話It.IsAnyのコンテキストで使用されていましたmock.Setup。どのように使用しようとしているのか、さらに詳しく教えていただけますか?

おすすめ記事