Spero che questa domanda dia alcune risposte interessanti perché è una di quelle che mi hanno infastidito per un po '.
Esiste un valore reale nell'unità di test di un controller in ASP.NET MVC?
Ciò che intendo è, per la maggior parte del tempo, (e non sono un genio), i miei metodi di controllo sono, anche nella loro parte più complessa, qualcosa del genere:
public ActionResult Create(MyModel model)
{
    // start error list
    var errors = new List<string>();
    // check model state based on data annotations
    if(ModelState.IsValid)
    {
        // call a service method
        if(this._myService.CreateNew(model, Request.UserHostAddress, ref errors))
        {
            // all is well, data is saved, 
            // so tell the user they are brilliant
            return View("_Success");
        }
    }
    // add errors to model state
    errors.ForEach(e => ModelState.AddModelError("", e));
    // return view
    return View(model);
}
La maggior parte del sollevamento pesante viene eseguita dalla pipeline MVC o dalla mia libreria di servizi.
Quindi forse le domande potrebbero essere:
- quale sarebbe il valore dell'unità testando questo metodo?
-  non si romperà su   Request.UserHostAddresseModelStatecon una NullReferenceException? Dovrei provare a deridere questi?
- se rifaccio questo metodo in un "helper" riutilizzabile (che probabilmente dovrei, considerando quante volte lo faccio!), testerei che valga la pena anche quando tutto quello che sto testando è soprattutto la "pipeline" "che, presumibilmente, è stato testato per un pollice della sua vita da Microsoft?
Penso che il mio punto davvero sia, fare ciò che segue sembra assolutamente inutile e sbagliato
[TestMethod]
public void Test_Home_Index()
{
    var controller = new HomeController();
    var expected = "Index";
    var actual = ((ViewResult)controller.Index()).ViewName;
    Assert.AreEqual(expected, actual);
}
Ovviamente sono ottuso con questo esempio esageratamente inutile, ma qualcuno ha qualche sapienza da aggiungere qui?
Non vedo l'ora ... Grazie.