Jasmin date moqueur avec moment.js
Je suis en utilisant moment.js pour la date/l'heure dans ma demande, mais il me semble qu'il ne joue pas bien avec le Jasmin se moque des capacités. J'ai mis en place une suite de test ci-dessous qui montre mon problème:
jasmine.clock().mockDate
ne semble pas fonctionner pour le moment, alors qu'il fonctionne très bien pour Date
.
describe('Jasmine tests', function () {
beforeEach(function() {
jasmine.clock().install();
});
afterEach(function() {
jasmine.clock().uninstall();
});
//Pass
it('uses the mocked time with Date', function() {
var today = new Date('2015-10-19');
jasmine.clock().mockDate(today);
expect(new Date().valueOf()).toEqual(today.valueOf());
});
//Fail
it('uses the mocked time with moment', function() {
var today = moment('2015-10-19');
jasmine.clock().mockDate(today);
expect(moment().valueOf()).toEqual(today.valueOf());
});
});
Pourquoi ne Date
fonctionne comme prévu lors de moment
ne l'est pas? N'est-ce pas moment
à l'aide de Date
sous le capot?
Quelle est la bonne façon de se moquer moment
à l'aide de Jasmin?
OriginalL'auteur jacwah | 2015-10-27
Vous devez vous connecter pour publier un commentaire.
jasmine.clock().mockDate
attendDate
comme entrée.Date
etmoment
ne sont pas entièrement compatibles. Si vous fournissez à être moqué de date dans la spécification elle-même, vous pouvez simplement utiliserDate
il ya lieu.Si votre code génère un moment où vous voulez vous moquer, ou vous préférez le moment de l'utilisation de l'API, jetez un oeil à
moment.toDate()
. Cette méthode renvoie leDate
objet la sauvegarde d'un moment.jasmine.clock().mockDate(..)
est une action globale, de sorte qu'il serait une bonne idée de définir (et de la désactiver) dans un autrebeforeEach
bloc à la place. Puis il suffit de l'effacer plus tard à l'aide dejasmine.clock().uninstall()
dans unafterEach
bloc.Merci! Fonctionne comme un charme
OriginalL'auteur jacwah
Découvrez comment le moment de se moquer des dates d'eux-mêmes dans leur propre suite de tests:
https://github.com/moment/moment/blob/2e2a5b35439665d4b0200143d808a7c26d6cd30f/src/test/moment/now.js#L15
OriginalL'auteur infomaniac