推特 statuses/destroy 未在 mocha/chai 中执行

twitter statuses/destroy not executing in mocha/chai

我正在尝试在节点中进行 node/twitter 路由测试后进行清理,并且当我的 post 请求删除我的 after 子句中的 tweet 时,它没有执行并且 twitter API 也不会抛出错误...

我在想这可能是我传递推文 ID 的方式,没有正确使用函数范围。对于那些不熟悉的人,我将 Twitter module from npm 用于 node.js:

describe( "The nodeshell's /tweet route", function() {
  // Logic to run before each test
  var tid = "";

  before( function( done ) {
    startServer( done );
  });

  // Logic to run after each test
  after( function( done ) {
    client.post('statuses/destroy/:id', {id: tid}, function(error, params, response){
      if(error){
        console.log(error);
        throw error;
      }
    });

    stopServer(done);
  });

  it( 'should return 200 when queried with a post request containing a valid tweet', function ( done ) {
    this.timeout(7000);
    var tweets = {
      tweet: "test" + uuid.v4()
    };

    apiHelper('post', uri, 200, tweets, function(err, res, body){
      expect(err).to.not.exist;
      tid = body.id;

      done();
    });
  });
});

在此先感谢您的帮助。

要使异步函数正常工作,您应该在 client.post 回调中调用 stopServer(done);。所以你的 after 函数将变成:

after(function(done) { 
    client.post('statuses/destroy/:id', {id: tid}, function(error, params, response){ 
        if(error){
            console.log(error);
            done(error);
        } 
        stopServer(done);
    });
});