J'écris une série de tests de bout en bout pour mon application angulaire (4), en utilisant un rapporteur. Mon backend est configuré pour se connecter à une réplique exacte de la base de données de production, mais rempli de données factices.Se moquer de la date dans Protractor
Une grande partie de mon frontal affiche correctement les données historiques. Actuellement, il y a une certaine période avec les données que je veux afficher. Cependant, dans une semaine, mon affichage "Hebdomadaire" affichera toutes les données comme 0.
Est-il possible de tromper le rapporteur en pensant que la date est dans la période où j'ai ensemencé les données fictives, de sorte que les données affichées sont prévisibles? ?
Mise à jour:
J'ai maintenant ce code:
import * as moment from 'moment';
describe('Login & Home Page',() => {
beforeEach(() => {
let date = moment('08-03-2017');
moment =() => { return date };
})
// ...
J'utilise le constructeur 'instant()'. Ce que je ne comprends pas est où je suis censé remplacer cette fonction? Dans le 'BeforeEach()' de mes tests de rapporteur? –
Vous pouvez le faire dans 'beforeEach()' si vous voulez qu'il s'applique à tous les éléments de la suite, ou vous pouvez le faire dans 'it' si vous voulez que cette modification soit limitée à un seul test. Les deux devraient fonctionner. J'espère que vous utilisez un «moment» global. Assurez-vous également de fournir des alias à d'autres fonctions 'moment 'que vous avez utilisées dans votre code, sinon cela échouera. – sabithpocker
OK, si vous voyez ma question mise à jour, vous pouvez voir ce que, cependant, je reçois l'erreur du compilateur '[ts] Impossible d'assigner 'moment' parce que ce n'est pas une variable', comment faire dans TypeScript –