Attualmente sto scrivendo una semplice mini app basata su timer in C# che esegue un'azione n volte ogni k secondi.
Sto cercando di adottare uno stile di sviluppo basato su test, quindi il mio obiettivo è testare tutte le parti dell'app.Unità testando un'applicazione basata su timer?
Quindi, la mia domanda è: c'è un buon modo per testare una classe basata su timer?
Il problema, come la vedo io, è che c'è un grosso rischio che i test avranno scomodamente tempo per l'esecuzione, in quanto devono aspettare tanto e così a lungo per le azioni desiderate per accadere.
Soprattutto se si vogliono dati realistici (secondi), invece di usare la minima risoluzione temporale consentita dal framework (1 ms?).
Sto utilizzando un oggetto fittizio per l'azione, per registrare il numero di volte in cui è stata richiamata l'azione e in modo che l'azione non prenda praticamente tempo.
L'unico problema che vedo con il tuo approccio è che probabilmente dovrai esporre qualcosa che accade ogni volta che i sondaggi si verificano, è una buona idea? esporre qualcosa che non devi solo per i test. Un'alternativa potrebbe essere interna (e InternalsVisibleTo), ma a molte persone non piace neanche quella – roundcrisis