Tengo una serie de pruebas NUnit y algunas fallan, pero parece que no puedo encontrar un motivo, y la excepción no me dice nada. Este es mi caso:La prueba NUnit falla debido a System.AccessViolationException
//Controller Action
[HttpPost]
[AjaxExceptionHandler]
[OutputCache(Duration = 0)]
public PartialViewResult SomeAction(long id)
{
try
{
var model = _repository.GetModel(id);
return PartialView(@"MyPartialView", model);
}
catch (Exception ex)
{
exceptionManager.HandleException(ex, FT_EXCEPTION_POLICY);
throw;
}
}
//Action Unit Test
[Test]
[Category(TestConstants.UnitTest)]
public void SomeAction_Returns_Expected_View()
{
var model = Builder<ViewModel>.CreateNew().Build();
repository.Stub(it => it.GetModel(Arg<long>.Is.Anything)).Return(model);
var viewResult = (PartialViewResult)someController.SomeAction(1);
Assert.AreEqual(@"MyPartialView", viewResult.ViewName);
}
Test Unit Excepción:
System.AccessViolationException: Intento de leer o escribir en la memoria protegida. Esto a menudo es una indicación de que otra memoria está corrupta.
Si en mi acción paso un valor nulo a la vista parcial, así: return PartialView(@"MyPartialView", null);
Luego pasa la prueba.
Otros casos similares fallan también, pero otros pasan. No he podido identificar una razón para cada uno.
¿Alguien me puede ayudar a identificar lo que está mal?
Gracias,
EDIT: Ok, me fijo Todas las otras pruebas que fallan y ahora tengo sólo los que tienen la System.AccessViolationException izquierda.
AÑADIDO procedimiento de configuración formar mis pruebas:
[SetUp]
public void SetUp()
{
controllerBuilder = new TestControllerBuilder();
repository = MockRepository.GenerateStub<ISomeRepository>();
someController = new SomeController
(repository);
controllerBuilder.InitializeController(someController);
}
¿Se pasa esta prueba si se quita outputchache atributo? – David
@Dvd - Otras acciones con el mismo atributo pasan sin problemas ... Pero lo intentaré ... Ahora mismo estoy disparando en la oscuridad, mira lo que sucede. EDITAR: Nop ... el mismo resultado. – AJC
Solo para estar seguro, ¿falla esta prueba cuando se ejecuta de forma aislada o solo cuando se ejecuta todo el paquete? –