Альтернатива http-backend-mock и ngE2e для реагирующего приложения

В настоящее время я использую макет ngMockE2e и httpbackend с транспортиром для угловой страницы.

Теперь мы думаем об использовании реакции для разработки. Есть ли альтернатива, которую я могу использовать для насмешек над сквозным тестированием для http-вызовов.


person Dinesh    schedule 15.11.2016    source источник


Ответы (1)


Вы можете использовать chai и chai-http.

'use strict';

import React from 'react';
import {Provider} from 'react-redux';
import {mount} from 'enzyme';
import {expect} from 'chai';
import configureMockStore from 'redux-mock-store';

import AppCtrl from '../ui-src/components/app.ctrl';

const mockStore = configureMockStore();

describe('mount(<AppCtrl />)', () => {
  let store = mockStore({data1: {}});
  const wrapper = mount(
    <Provider store={store}>
      <AppCtrl />
    </Provider>
  );
  expect(wrapper.find(AppCtrl).length).to.equal(1);
  const container = wrapper.find(AppCtrl);
  it('checks div count', () => {
    expect(container.find('div').length).to.equal(4);
  });
  it('checks br count', () => {
    expect(container.find('br').length).to.equal(6);
  });
  it('checks props.Data1', () => {
    expect(container.props('Data1')).to.be.empty;
  });
  it('checks text contains', () => {
    expect(container.text()).to.contain('React Version');
  });
});

'use strict';

import chai, {expect} from 'chai';
import chaiHttp from 'chai-http';
// import sinon from 'sinon';

chai.use(chaiHttp);

describe('server test with chai-http', () => {
  it('checks get /', () => {
    chai.request('../js/server').get('/')
      .end(function (err, res) {
         expect(err).to.be.null;
         expect(res).to.have.status(200);
      });
  });
  it('checks get /routes/getData', () => {
    chai.request('../js/server').get('/routes/getData')
      .end(function (err, res) {
        expect(err).to.be.null;
        expect(res).to.have.status(200);
        expect(res).to.have.header('content-type', 'application/json; charset=utf-8');
        expect(res).to.have.header('content-length', '93');
        expect(res).to.be.json;
        console.log('res: ', res.headers);
      });
  });
});

person J. Mark Stevens    schedule 15.11.2016
comment
Это для тестирования внутреннего API. Но я ищу что-то для тестирования приложения пользовательского интерфейса, издеваясь над вызовами API. Что-то похожее на ngMocke2e и httpbackend mock, которые использовались для angular. - person Dinesh; 16.11.2016