Sinon: Π—Π°Π³Π»ΡƒΡˆΠΊΠ° экспортируСмых Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 16 нояб. 2017  Β·  2ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: sinonjs/sinon

Π­Ρ‚ΠΎ распространСнный Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ использования для ΠΈΠΌΠΈΡ‚Π°Ρ†ΠΈΠΈ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ES.

Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρƒ мСня Π΅ΡΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ 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);

  // ..
}

Π’ своСм тСстС я Ρ…ΠΎΡ‡Ρƒ ΠΈΠΌΠΈΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ getEventByEventId, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€

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.');
});

Об этом Ρ€Π°Π½ΡŒΡˆΠ΅ ΡΠΏΡ€Π°ΡˆΠΈΠ²Π°Π»ΠΈ здСсь: https://github.com/sinonjs/sinon/issues/1358 . Но это Π±Ρ‹Π»ΠΎ Π½Π΅Π·Π°ΠΊΠΎΠ½Π½ΠΎ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΎ ΠΊΠ°ΠΊ Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚: https://github.com/sinonjs/sinon/issues/1121 , хотя это ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ другая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°.
Об этом ΡƒΠΆΠ΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ Π² Ρ‚ΠΎΠΌ выпускС, Π½ΠΎ, ΠΏΠΎΡ…ΠΎΠΆΠ΅, ΠΎ Π½Π΅ΠΌ большС Π½Π΅ заботятся.

ВсС 2 ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Sinon.JS Π½Π΅ занимаСтся ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹ΠΌΠΈ систСмами. Π― Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽ это.

Из-Π·Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ поступаСт мноТСство запросов, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΈΡˆΡƒΡ‚ тСсты, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ сСбС Π½Π° Тизнь, ΠΌΡ‹ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»ΠΈ Β« Как ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡˆΠ²Ρ‹ ссылок с CommonJSΒ» .

ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, ΠΏΠΎΠΌΠΎΠ³ΠΈΡ‚Π΅ Π½Π°ΠΌ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ списком ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΈ Π·Π°Π΄Π°Π²Π°ΠΉΡ‚Π΅ вопросы ΠΏΠΎ использованию Π² StackOverflow . Оба ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌΠΈ рСсурсами, Π³Π΄Π΅ Π±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠ°Ρ аудитория ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ ΠΏΠΎΠΌΠΎΡ‰ΡŒ.

@sebakerckhof ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ это https://github.com/sinonjs/sinon/issues/562#issuecomment -399090111

Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ