Mocking de TempData en ASP.NET Core en MSTest
public ActionResult View(string name)
{
if (TempData["SessionVariable"] != null)
{
FileName = name;
return View();
}
else
{
return RedirectToAction("index", "Home");
}
}
Método de prueb
public void UseCaseView_CorrectRequirements()
{
var mock = new Mock<Controller>();
mock.Setup(p => p.TempData["SessionVariable"]).Returns("admin");
Controller.View("SAMPLE.xml");
}
Lanza un error como,
Result StackTrace:
at Moq.Mock.ThrowIfSetupExpressionInvolvesUnsupportedMember (Configuración de expresión, método MethodInfo) en C: \ projects \ moq4 \ Source \ Mock.cs: línea 883 en Moq.Mock.SetupGetPexProtected [T, TProperty] (Mock1 mock, Expression
1 expresión, condición de condición) en C: \ projects \ moq4 \ Source \ Mock.cs: línea 537 en Moq.Mock.SetupGet [T, TProperty] (Mock1 mock, Expression
1 expresión, condición de condición) en C: \ projects \ moq4 \ Source \ Mock.cs: línea 517 en Moq.Mock.SetupPexProtected [T, TResult] (Mock1 mock, Expression
1 expresión, condición de condición) en C: \ projects \ moq4 \ Source \ Mock.cs: línea 507 en Moq.Mock.Setup [T, TResult] (Mock1 mock, Expression
1 expresión, condición de condición) en C: \ projects \ moq4 \ Source \ Mock.cs: línea 484 en Moq.QueryableMockExtensions.FluentMock [T, TResult] (Mock1 mock, Expression
1) en C: \ projects \ moq4 \ Source \ Linq \ Mocks.cs: línea 224 en lambda_method (Cierre) en Moq.Mock.GetTargetMock (Expression fluentExpression, Mock mock) en C: \ projects \ moq4 \ Source \ Mock.cs: línea 856 en Moq.Mock.SetupPexProtected [T, TResult] (Mock1 mock, Expression
1 expresión, condición de condición) en C: \ projects \ moq4 \ Source \ Mock.cs: línea 505 en Moq.Mock.Setup [T, TResult] (Mock1 mock, Expression
1 expresión, condición de condición) en C: \ projects \ moq4 \ Source \ Mock.cs: línea 484 en SE_WEBAPP.Tests.TestControllers.UsecaseControllerTests.UseCaseView_CorrectRequirements () en
D: \ Public \ SE_WEBAPP_TESTCASE \ SE_WEBAPP \ SE_WEBAPP.Tests \ TestControllers \ UsecaseControllerTests.cs: línea 23
Mensaje de resultado: Método de prueba SE_WEBAPP.Tests.TestControllers.UsecaseControllerTests.UseCaseView_CorrectRequirements arrojó una excepción: System.NotSupportedException: Configuración no válida en un miembro no virtual (reemplazable en VB): mock => mock.TempData