twitter状态/破坏不在mocha / chai中执行

时间:2015-01-22 20:02:33

标签: javascript node.js rest twitter mocha

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

提前感谢所有帮助。

1 个答案:

答案 0 :(得分:0)

要使异步功能正常工作,您应该在stopServer(done);回调中调用client.post。因此,您的after功能将变为:

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