Test di unità EventArgs - ci saranno problemi di temporizzazione?

1

Sto scrivendo una piccola libreria di giochi. I capsula la logica nel mio modello chiamato Block . Il mio modello Block comunica solo tramite eventi ai suoi clienti (è una cosa buona da fare!?).

Ho scritto un semplice test unitario che mette alla prova parte di quella logica. Sembra così:

    [Test]
    public void CrossMissThrow()
    {
        UpdateEventArgs updateArgs = null;
        var block = new Block();
        block.Updated += (sender, args) =>
        {
            updateArgs = args;
        };

        block.NewGame();
        Assert.AreEqual(0, updateArgs.MissThrows);

        block.MissThrow();
        Assert.AreEqual(1, updateArgs.MissThrows);

        block.MissThrow();
        Assert.AreEqual(2, updateArgs.MissThrows);
    }

Come puoi vedere ogni volta che chiamo un metodo del mio modello Block riceverò un evento di aggiornamento da esso. Ho immediatamente affermato che alcune proprietà di EventArgs sono corrette.

Questo funziona e tutti i test passano, ma: Non posso incontrare problemi di temporizzazione qui? Come ho capito, chiamo il mio metodo MissThrow() e asserisco subito dopo, cioè dopo 1 ms. Cosa succede se il metodo impiega troppo tempo, diciamo intorno ai 5 ms !? Il mio evento sarebbe stato troppo tardi e il mio passaggio sarebbe fallito.

Il mio test unitario va bene così o devo modificarlo a causa di quel problema? O devo anche cambiare la mia comunicazione con il modello?

Grazie in anticipo!

    
posta selmaohneh 29.04.2018 - 17:47
fonte

0 risposte

Leggi altre domande sui tag