Sinon: Fonctions exportées par défaut du stub

Créé le 16 nov. 2017  ·  2Commentaires  ·  Source: sinonjs/sinon

C'est un cas d'utilisation courant pour se moquer des modules ES.

par exemple, j'ai un module qui importe getEventByEventId

import getEventByEventId from '../queries/getEventByEventId';

export default async (
  {
    connection,
    session
  }: ResolverContextType
) => {
  if (!session || !session.userId) {
    throw new Error('User must be authenticated.');
  }

  const event = await getEventByEventId(connection, eventId);

  // ..
}

Dans mon test, je veux me moquer de getEventByEventId, par exemple

import test from 'ava';
import sinon from 'sinon';
import moment from 'moment';
import createReservation from '../../../src/mutators/createReservation';

test('throws an error if the event is in the past', async (t) => {
  const parameters: any = {};

  const context: any = {
    session: {
      userId: 1
    }
  };

  const stub = sinon.stub().returns({
    date: moment().format('YYYY-MM-DD'),
    time: moment(new Date().getTime() - 1000 * 60).format('HH:mm')
  });

  // How to use the stub to mock `getEventByEventId`?

  await t.throws(createReservation(context), 'Cannot create a reservation for a past event.');
});

Cela a déjà été demandé ici : https://github.com/sinonjs/sinon/issues/1358 . Mais cela a été fermé à tort comme un doublon de : https://github.com/sinonjs/sinon/issues/1121 , alors qu'il s'agit d'un problème totalement différent.
Cela a déjà été mentionné dans ce numéro, mais il ne semble plus être pris en charge.

ES2015+

Tous les 2 commentaires

Sinon.JS ne s'occupe pas des systèmes de modules. Je ferme ceci.

En raison des nombreuses demandes qui continuent d'affluer et du fait que les responsables du projet écrivent également des tests pour gagner leur vie, nous avons publié How To Use Link Seams With CommonJS .

S'il vous plaît, aidez-nous à garder la liste des problèmes gérable et posez des questions d'utilisation sur la liste de diffusion des utilisateurs Sinon.JS ou StackOverflow . Les deux sont de bonnes ressources où un public plus large d'utilisateurs peut offrir de l'aide.

@sebakerckhof vérifier ceci https://github.com/sinonjs/sinon/issues/562#issuecomment -399090111

Cette page vous a été utile?
0 / 5 - 0 notes