Ho bisogno dei test JUnit per il livello controller su un MVC quando ho un livello database

4

Ho un MVC che ha questa struttura:

  • ui
  • Controller
  • db
  • modello

Fondamentalmente il controller non fa molto più della connessione ui con db layer.

Devo fornire test JUnit per il controller (se il punto del programma è importante, è il mio progetto semestrale)?

Questo mi aiuterà in qualche modo perché non c'è molto codice? Prendo in pratica tutti i parametri e li metto, non dovrebbe essere coperto dai test del livello del modello?

Metodi di esempio che ho nel controller:

Inserimento:

public int createEmployeeJob(String jobName)
{
    int result = -3;

    try 
    {       
        EmployeeJob newEmployeeJob = new EmployeeJob();

        newEmployeeJob.setJobName(jobName);

        DBConnection.startTransaction();

        IFEmployeeJob dbEmployeeJob = new DBEmployeeJob();
        result = dbEmployeeJob.createEmployeeJob(newEmployeeJob);

        DBConnection.commitTransaction();
    }
    catch (Exception e)
    {
        DBConnection.rollbackTransaction();
    }

    return result;
}

Recupero:

public ArrayList<EmployeeJob> printAllEmployeeJobs() throws SQLException
{
    IFEmployeeJob dbEmployeeJob = new DBEmployeeJob();

    return dbEmployeeJob.printAllEmployeeJobs();
}
    
posta Nikola 31.05.2013 - 12:06
fonte

1 risposta

7

Sono necessari test unitari proporzionali al rischio che il codice in quella classe presenti un errore.

Il codice complesso è più rischioso del semplice codice. I metodi lunghi sono più rischiosi di quelli brevi. Il codice che implementa le decisioni è più rischioso del codice che semplifica semplicemente il passaggio dei valori a un'altra parte, ecc. Pertanto, finché il livello del controller non fa altro che copiare i valori da una posizione a un'altra, ha la priorità più bassa per la scrittura dei test. Ma avere dei test è ancora meglio che non averli - anche il codice più semplice può introdurre errori, in particolare dal momento che credi è semplice e controlla se dura qualcosa.

Si noti che se intero livello è così semplice e ripetitivo che in realtà ripete solo azioni su un altro livello, la cosa giusta da fare è di averlo generato automaticamente, scrivere un test per l'auto -generatore, e quindi non preoccuparti mai più.

    
risposta data 31.05.2013 - 12:28
fonte

Leggi altre domande sui tag