Visual StudioテストスイートとMoqを使用して、MvcMailerの単体テストを正常に実行できません。ウィキの例を一語一語コピーしましたが、毎回次の例外が発生します。
Test method MvcMailerTest.Tests.MailerTest.TestMethod1 threw exception:
System.ArgumentNullException: Value cannot be null.
Parameter name: httpContext
コードは次のとおりです:(VSユニットテストフレームワークを使用-例のようにnUnitを使用した場合とまったく同じエラー)
//Arrange: Moq out the PopulateBody method
var _userMailerMock = new Mock<UserMailer>();
_userMailerMock.Setup(mailer => mailer.PopulateBody(It.IsAny<MailMessage>(), "Welcome", null));
_userMailerMock.CallBase = true;
//Act
var mailMessage = _userMailerMock.Object.Welcome();
Welcome()メソッドの次の行で失敗します(wikiから直接コピーされます):
PopulateBody(mailMessage, viewName: "Welcome");
wikiはここにあります:https ://github.com/smsohan/MvcMailer/wiki/MvcMailer-Step-by-Step-Guide
同様の(ほぼ同じ)質問:MvcMailer:Url.Actionを使用するRazorビューでNUnitテストを完了できません
誰かがこれを修正/回避する方法を知っていますか?リンクされた質問は、私が行ったPopulateBodyメソッドをモックアウトする必要があると言っています(wikiによる)。