Ho una classe base in C # dalla quale creo classi ereditate per gli scenari di databinding. Puoi considerarlo come un sostituto della classe DataRow
di .NET.
Voglio automatizzare il test della durata tipica di una riga, assicurandoti che elementi come lo stato dell'oggetto e il rilevamento delle modifiche rimangano coerenti.
Il mio primo pensiero è stato semplicemente utilizzare la classe di unit test con un metodo che avrebbe fatto più operazioni e affermazioni successive, come questa:
/*
For the sake of keeping this as simple as possible, let's just assume
that new instances can be created with a public constructor, as "unchanged".
*/
var row = new PocoTest(); // Derived from aforementionned base class
Assert.AreEqual(RecordStates.Unchanged, row.RecordState);
Assert.IsFalse(row.IsPropertyModified("MyProperty"));
row.MyProperty = "this is a new value";
Assert.AreEqual(RecordStates.Modified, row.RecordState);
Assert.IsTrue(row.IsPropertyModified("MyProperty"));
row.AcceptChanges();
Assert.AreEqual(RecordStates.Unchanged, row.RecordState);
Assert.IsFalse(row.IsPropertyModified("MyProperty"));
Tuttavia, questo non sembra corretto nel paradigma di test delle unità in cui è consigliabile avere solo una cosa alla volta sottoposta a test.
Quindi sto cercando qualche consiglio, qui. Sto pensando troppo a questo? Dovrei continuare a farlo in questo modo? O c'è un altro, migliore e più adatto modo di realizzare qualcosa di simile?