Unit и e2e тестируют микросервис grpc - PullRequest
0 голосов
/ 18 мая 2018

Привет всем! Я создаю микросервис grpc с использованием фреймворка nestjs.Может ли кто-нибудь дать мне несколько советов о том, как я буду тестировать свой микросервис grpc (unit и e2e).

1 Ответ

0 голосов
/ 31 августа 2018

Это не может быть идеальным, но мои настройки примерно такие, используя Jest.Надеюсь, это поможет вам.

beforeAll((done) => {
  client = new service.SomeService(
      'localhost:55051',
      grpc.credentials.createInsecure()
  );
  done();
});

afterAll(done => {
  client = null;
  done();
});

/**
 * Handles gRPC responses. Takes a parser to use against the response object
 * @param {function} responseParser the parser for the response object
 * @returns {function} the callback to pass in to gRPC responses
 */
const responseHandler = (onErr, responseParser, done) => (err, response) => {
  if (err) {
    return onErr(err, done)
  } else {
    return responseParser(response, done);
  }
};

describe('Authenticate', () => {
  const callback = expected => (response, done) => {
    const received = {
        status: response.status,
        challenge: bytes(response.challenge),
    };

    expect(received).toEqual(expected);
    done();

  const errHandler = expected => (err, done) => {
    expect(err).toBe('Offline')
};

  test('Gets a challenge token', (done) => {
    const expected = {
      status: testValues.SUCCESS,
      challenge: testValues.CHALLENGE
    };

    client.authenticate(
      { someKey: testValues.SOME_KEY },
      responseHandler(errHandler(expected), callback(expected), done)
    );
  });
});
...