2015-05-05 15 views
7

Ho un controller che ha questa riga di codiceCome fornire filtri fittizie per i test unit

var formattedDate= $filter('date')(dateColName,short); 

sto cercando di unit test questo controller e non mi è chiaro su come prendere in giro il filtro data nel mio codice .

+1

Hai * davvero * bisogno di prendere in giro il filtro della data? –

risposta

16

È necessario aggiungere "Filtro" alla fine del nome del filtro quando si deride un filtro in Angolare, poiché i negozi angolari filtrano come servizi, ma aggiunge "Filtro" alla fine. Prova ad esempio:

var mockFilter = function() { 
    return 'whatyouwantittoreturn'; 
}; 

beforeEach(function() { 
    module(function($provide) { 
     $provide.value('dateFilter', mockFilter); 
    }); 
}); 
+0

@kevinwalker Questo ha funzionato grazie mille. – user3700866

+3

Questo è grandioso, grazie! Ho fatto lo stupido errore di mettere questo dopo il mio inject() e ho ricevuto un avvertimento, quindi FYI a coloro che lo usano, mettilo PRIMA del tuo inject() o abbaiare at'cha. – coblr