정보실

웹학교

정보실

javascript Polly.JS - HTTP 상호 작용 기록, 재생 및 스텁

본문

Polly.JS는 HTTP 상호 작용을 기록, 재생 및 스터빙 할 수 있는 독립형 프레임 워크에 독립적인 JavaScript 라이브러리입니다.

Polly.JS는 노드와 브라우저 모두에서 여러 요청 API를 활용하여 구성이 거의 없거나 전혀 없는 요청과 응답을 조롱 할 수 있으며 단순하고 강력하며 직관적인 API로 각 요청을 완벽하게 제어 할 수 있습니다.


https://github.com/Netflix/pollyjs 


import { Polly } from '@pollyjs/core';
import XHRAdapter from '@pollyjs/adapter-xhr';
import FetchAdapter from '@pollyjs/adapter-fetch';
import RESTPersister from '@pollyjs/persister-rest';

/*
  Register the adapters and persisters we want to use. This way all future
  polly instances can access them by name.
*/
Polly.register(XHRAdapter);
Polly.register(FetchAdapter);
Polly.register(RESTPersister);

describe('Netflix Homepage', function() {
  it('should be able to sign in', async function() {
    /*
      Create a new polly instance.

      Connect Polly to both fetch and XHR browser APIs. By default, it will
      record any requests that it hasn't yet seen while replaying ones it
      has already recorded.
    */
    const polly = new Polly('Sign In', {
      adapters: ['xhr', 'fetch'],
      persister: 'rest'
    });
    const { server } = polly;

    /* Intercept all Google Analytic requests and respond with a 200 */
    server
      .get('/google-analytics/*path')
      .intercept((req, res) => res.sendStatus(200));

    /* Pass-through all GET requests to /coverage */
    server.get('/coverage').passthrough();

    /* start: pseudo test code */
    await visit('/login');
    await fillIn('email', 'polly@netflix.com');
    await fillIn('password', '@pollyjs');
    await submit();
    /* end: pseudo test code */

    expect(location.pathname).to.equal('/browse');

    /*
      Calling `stop` will persist requests as well as disconnect from any
      connected browser APIs (e.g. fetch or XHR).
    */
    await polly.stop();
  });
});




페이지 정보

조회 20회 ]  작성일20-06-27 16:25

웹학교