В вашем случае, я не думаю, что вы действительно хотите проверить состояние модели. Скорее, вы должны просто использовать тестовый набор, чтобы вызвать правильное / неправильное состояние модели, а затем проверить, что соответствующий результат возвращается при определенных условиях. Вы можете использовать отдельные тесты для проверки различных условий, при которых модель является действительной / недействительной, однако, если вы используете DataAnnotations, я не вижу особого смысла в тестировании, чтобы они и инфраструктура привязки модели работали правильно. Предположительно Microsoft уже сделала это.
Оригинал, основанный на (ошибочном) предположении, что ViewResult возвращался
Я думаю, что-то вроде этого.
[TestMethod]
public void TestCreate()
{
// set up
var result = Create( invalidDTO ) as ViewResult;
var modelState = result.ViewData.ModelState;
Assert.IsFalse( modelState.IsValid );
var errors = modelState.Errors;
Assert.AreEqual( 1, errors.Count );
Assert.AreEqual( errors[0].ErrorMessage, "some error message" );
}