Kontrolörlerimiz için bazı birim testleri yazma aşamasındayım. Aşağıdaki basit denetleyiciye sahibiz.Ünite Test Kontrolörü Kendo UI ile MVC4'te Eylemler
[Test]
public void Create()
{
// Arrange
clientController.ModelState.Clear();
// Act
JsonResult json = clientController.Create(this.clientDto, this.dataSourceRequest) as JsonResult;
// Assert
Assert.IsNotNull(json);
}
ve kontrol bağlama aşağıdaki kod ile sahte edilir: durum zaman Create
denetleyicisi eylem girişimi ortaya
public class FakeControllerContext : ControllerContext
{
HttpContextBase context = new FakeHttpContext();
public override HttpContextBase HttpContext
{
get
{
return context;
}
set
{
context = value;
}
}
}
public class FakeHttpContext : HttpContextBase
{
public HttpRequestBase request = new FakeHttpRequest();
public HttpResponseBase response = new FakeHttpResponse();
public override HttpRequestBase Request
{
get { return request; }
}
public override HttpResponseBase Response
{
get { return response; }
}
}
public class FakeHttpRequest : HttpRequestBase
{
}
public class FakeHttpResponse : HttpResponseBase
{
}
}
aşağıdaki gibi
public class ClientController : Controller
{
[HttpPost]
public ActionResult Create(Client client, [DataSourceRequest] DataSourceRequest request)
{
if (ModelState.IsValid)
{
clientRepo.InsertClient(client);
}
return Json(new[] {client}.ToDataSourceResult(request, ModelState));
}
}
bu birim test ToDataSourceResult
yöntemini çağırmak için.
System.EntryPointNotFoundException : Entry point was not found.
ayıklama (ve standart bir bağlamında çalışır zaman) ModelState iç sözlük birimi test boş olduğunu gösterir. ModelState
, ToDataSourceResult
yönteminden kaldırılırsa, sınama başarılı bir şekilde geçer. Herhangi bir yardım çok takdir edilir.
Çok teşekkürler ... bu sonuca kendim gelmezdim. – aponzani
Bu cevap günümü kurtardı! – vcRobe