Я выполняю единичный тест моего маршрута PostMyModel
. Однако в пределах PostMyModel()
я использовал линию Validate<MyModel>(model)
для повторной проверки моей модели после ее изменения. Я использую тестовый контекст, чтобы не быть зависимым от db для модульных тестов. Я отправил контекст испытания и метод пост ниже:Подтверждение сбоя в модульных тестах
Test Контекстное
class TestAppContext : APIContextInterface
{
public DbSet<MyModel> MyModel { get; set; }
public TestAppContext()
{
this.MyModels = new TestMyModelDbSet();
}
public int SaveChanges(){
return 0;
}
public void MarkAsModified(Object item) {
}
public void Dispose() { }
}
Сообщение Метод
[Route(""), ResponseType(typeof(MyModel))]
public IHttpActionResult PostMyModel(MyModel model)
{
//Save model in DB
model.status = "Waiting";
ModelState.Clear();
Validate<MyModel>(model);
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
db.MyModels.Add(model);
try
{
db.SaveChanges();
}
catch (DbUpdateException)
{
if (MyModelExists(model.id))
{
return Conflict();
}
else
{
throw;
}
}
return CreatedAtRoute("DisplayMyModel", new { id = model.id }, model);
}
При запуске Validate<MyModel>(model)
линии, я получаю ошибку:
System.InvalidOperationException: ApiController.Configuration must not be null.
Как я могу это исправить?
Может быть проще с: controller.Request = новый HttpRequestMessage(); controller.Request.Properties ["MS_HttpConfiguration"] = new HttpConfiguration(); – ccook