繁体   English   中英

单元和 e2e 测试 grpc 微服务

[英]Unit and e2e testing a grpc microservice

大家好,我正在使用 nestjs 框架创建一个 grpc 微服务。 谁能给我一些关于如何测试我的 grpc 微服务(单元和 e2e)的建议。

你可以在github 中找到关于微服务 e2e 的官方文档,

em .. 单元测试演示我仍在寻找,

grpc-mock也许是一种可以进行单元测试的方法

这可能并不理想,但我的设置是这样的,使用 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)
    );
  });
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM