【问题标题】:twitter statuses/destroy not executing in mocha/chaitwitter 状态/销毁未在 mocha/chai 中执行
【发布时间】:2015-03-21 18:26:58
【问题描述】:

我正在尝试在节点中的节点/twitter 路由测试之后进行清理,并且当我在我的 after 子句中发出删除推文的发布请求时,它不会执行并且 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();
    });
  });
});

提前感谢所有帮助。

【问题讨论】:

    标签: javascript node.js rest twitter mocha.js


    【解决方案1】:

    要使异步函数工作,您应该在 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);
        });
    });
    

    【讨论】:

      猜你喜欢
      • 2021-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-05
      相关资源
      最近更新 更多