ユーザーIDセット(ユーザーがログインしていると思われる)でWebサービスコールをテストしたいmoqとnunitでWeb APIコントローラをテストする際に、ユーザーIDを模擬する方法は?
私は多数の投稿とstackoverflowの回答を確認しましたが、私は必要な答えを得られませんでした。
私が得た最も近いのはこれです。
var context = new Mock<HttpContextBase>();
var mockIdentity = new Mock<IIdentity>();
context.SetupGet(x => x.User.Identity).Returns(mockIdentity.Object);
mockIdentity.Setup(x => x.Name).Returns("abc");
この時点で、私はcontrollercontextを設定しなければならず、そのコンテキスト変数は何らかの形で供給される必要があると推測します。
私はMVCコントローラに関する多くの例を見ましたが、私はApiControllerで動作するものを見つけることができませんでした。誰かがこれにいくつかの光を発することができますか?
ありがとうございます!
投稿をいただきありがとうございます。私はテストを行い、アップデートをお届けします! – rlee923
私はあなたが提案したものを試しましたし、クレームアイデンティティに追加されたクレームアイテムはRequestContext.Principal.Identity.NameでもUser.Identity.Nameでもチェックされません(つまりName値は設定されていません)。アイデンティティの下でクレームをチェックするのが標準的な慣行ですか? – rlee923
おかげで、あなたの.netコアWeb APIが私の解決に役立ちました。 – Neville