Pregunta

Estoy intentando utilizar el Ayudante de prueba MvcContrib para probar un método controlador en MVC3.

El controlador:

public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View();
    }
}

La prueba:

[TestMethod]
public void Index()
{
    // Arrange
    HomeController controller = new HomeController();

    // Act
    ViewResult result = controller.Index() as ViewResult;

    // Assert
    result.AssertViewRendered().ForView("Index");
}

El error:

Método de ensayo Tests.Web.Controllers.HomeControllerTests.Index lanzó excepción: MvcContrib.TestHelper.ActionResultAssertionException: Resultado esperado a ser de tipo ViewResult. En realidad, es de tipo ViewResult.

Algunas ideas?

¿Fue útil?

Solución

Mi conjetura es que usted está utilizando el MVCContrib para MVC2, y utiliza el MVC2 ViewResult. Considerando que, usted está volviendo un ViewResult MVC3.

¿Usted ha intentado compilar MVCContrib contra MVC3?

Otros consejos

MVCContrib.TestHelper está utilizando una versión anterior del MVC. El sitio tiene una versión MVC3 ahora, pero ya que estoy escribiendo este MVC4 está fuera y no existe un MVCContrib.TestHelpers actualizados para MVC4 todavía.

Sin tocar la fuente se puede solucionar este problema con una redirección de unión. Colocar esto en tu app.config prueba:

<runtime>  
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">  
        <dependentAssembly>  
            <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />  
            <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="4.0.0.0" />  
        </dependentAssembly>  
    </assemblyBinding>  
</runtime> 

Los puntos de muestra por encima de todos los conjuntos que piden MVC versión 1-3 para utilizar 4.

En caso de que alguien se encuentra con el mismo error en el año 2012, estoy teniendo el mismo problema con MVC4 y MvcContrib trabajando contra MVC3.

La solución fue la de descargar el código fuente de MvcContrib. En MVCContrib.TestHelper referencia del proyecto de eliminación de System.Web.Mvc (por defecto que apunta a la versión 3) y añadir System.Web.Mvc, pero asegúrese de que hace referencia a la versión 4.0.0.

A continuación, generar el proyecto, copiar archivos dll generadas con AP (para entrar en código TestHelper) en su solución y añadir una referencia a esa DLL. Trabajado para mí!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top