è vero che non si può testare tutto ma secondo me vale la pena di testare il più possibile, in questo modo si riduce la “superficie di attacco”. Una delle cose scomode da testare sono indubbiamente le “robe” multi-threading, ma:
risulta abbastanza facile produrre qualcosa di utile:
[TestMethod]
public void asyncWorker_should_correctly_set_result()
{
var wa = new ManualResetEvent( false );
var expected = "result";
var actual = "";
var worker = AsyncWorker.Using( expected )
.AndExpecting( new { Sample = "" } )
.Execute( cfg =>
{
cfg.Async = e => e.Result = new { Sample = e.Argument };
cfg.After = e => actual = e.Result.Sample;
} );
worker.Completed += ( s, e ) => wa.Set();
wa.WaitOne();
actual.ShouldBeEqualTo( expected );
}
.m