小编Ari*_*Ari的帖子

不能使用 sinon 和 proxyquire 模拟构造函数

我看过几个类似的问题,但没有一个案例适合我的问题。我正在尝试模拟我在其他测试中完成的构造函数,但是在使用 google-auth-library 的情况下我无法让它工作

代码.js

const {OAuth2Client} = require('google-auth-library');
const keys = require('./oauth2.keys.json');

async function getRedirectUrl() {
  const oAuth2Client = new OAuth2Client(
    keys.installed.client_id,
    keys.installed.client_secret,
    keys.installed.redirect_uris[0]
  );

  const authorizeUrl = oAuth2Client.generateAuthUrl({
    access_type: 'offline',
    scope: 'https://www.googleapis.com/auth/bigquery',
    prompt: 'consent'
  });

  return authorizeUrl;
}
Run Code Online (Sandbox Code Playgroud)

测试.js

let Code = require('../code.js');

describe('code', function() {
    let generateUrlStub, tokenStub, mockClient;

    before(async () => {
      generateUrlStub = sinon.stub().returns('http://example.com');
      tokenStub = sinon.stub().returns({tokens: 'tokens'});

      mockClient = sinon.stub().returns({
        generateAuthUrl: generateUrlStub,
        getToken: tokenStub,
      });

      Code = proxyquire('../Code.js', {
        'google-auth-library': mockClient,
      });
    });

    it('should call …
Run Code Online (Sandbox Code Playgroud)

testing node.js sinon proxyquire

2
推荐指数
1
解决办法
1418
查看次数

标签 统计

node.js ×1

proxyquire ×1

sinon ×1

testing ×1