I metodi di azione generati automaticamente in MVC5 utilizzano BindAttribute con un elenco Includi che contiene i nomi dei campi in una stringa letterale.
Esempio:
// POST: MyTable/Edit/5
// To protect from overposting attacks, please enable the specific properties you want to bind to,
// for more details see http://go.microsoft.com/fwlink/?LinkId=317598.
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit([Bind(Include = "Field1, Field2, Field3")] MyEntity myEntity)
{
...
}
Se Field1 viene rinominato in MyEntity, non verrà automaticamente aggiornato nell'elenco Includi. Se lo sviluppatore si dimentica di aggiornare gli elenchi Include, il compilatore non si lamenterà e il problema potrebbe non essere scoperto fino al runtime.
Comprendo che è comune utilizzare classi di modello di visualizzazione e uno strumento come AutoMapper per mappare tra modello di visualizzazione e modello di dominio ed è quindi facile creare test unitari per tali mapping per rilevare gli errori di ridenominazione.
Tuttavia, se il metodo action utilizza direttamente il modello di dominio e utilizza un elenco di inclusione Bind come mostrato sopra, c'è un modo per creare un test unitario per testare l'associazione del modello e rilevare un errore di ridenominazione?