【发布时间】:2016-09-30 04:40:58
【问题描述】:
我已经尝试过完成这项工作,并进行了许多 google/stackoverflow 搜索,但完全没有运气。
我有一个简单的模型:
public class MovieModel
{
public string Id { get; set; }
[Required]
[StringLength(100)]
public string Name { get; set; }
}
控制器中的方法:
// POST: api/Movies
public IHttpActionResult Post([FromBody]MovieModel movieModel)
{
if (ModelState.IsValid)
{
//Code
}
}
还有一个测试方法(是集成测试,但同样会发生在单元测试中):
[TestMethod]
public void MoviesController_Post_Without_Name()
{
// Arrange
var model = new MovieModel();
model.Name = "";
// Act
var result = controller.Post(model);
// Assert
Assert.IsInstanceOfType(result, typeof(InvalidModelStateResult));
Assert.AreEqual(6, controller.Get().Count());
}
尽管模型显然无效,但它总是将 IsValid 属性评估为 true。
到目前为止,我尝试了很多方法,但都没有成功。
【问题讨论】:
标签: c# testing asp.net-web-api modelstate