【问题标题】:Asyncjs Waterfall and SinonJS stub异步 Js 瀑布和 Sinon JS 存根
【发布时间】:2013-08-19 19:42:30
【问题描述】:
  • 我如何存根 @ra.do_post 以使其进入“第 2 步”

    • 现在,当我在第 1 步之后在 Async.Waterfall 中运行我的规范时,它会转到第 5 步
    • 我认为在我的规范中我没有正确返回回调以使其进入第 2 步

滚动到结尾看看我在做什么。提前致谢

RA = require('./request_adapter')

class QueryHandler
  constructor: (@adapter) ->
    @ra = new RA()


  create_test: (id, data, cb) ->
    self = this

    _url    =  url + adapter_apis.CREATE
    bll_url = "http://localhost:" + 11 + "/" + bll_apis.PKG_SWITCH  

    Async.waterfall [
      (done) ->
        console.info("Step 1 ==================")
        @ra.do_post some_url, data, done

      , (resp, done) ->
        console.info("Step 2 ==================")
        console.info(resp)
        if resp? and resp.status isnt "SUCCESS"
          console.info("Step 3a ==================")
          cb({error: true, message: "error."})
        else
          console.info("Step 3b ==================")
          fn = () -> self.ra.do_post _url, data , done
          helper.delay 500, fn

      , (resp, done) ->
        console.info("Step 4 ==================")
        cb(null,resp)

    ], (error, resp) ->
      console.info("Step 5 ==================")
      if error
        cb({error: true, message: "errored out"})

这是我在规范中尝试过的

  var qh      = require(query_handler");
  var qh_obj  = new qh("FAKE");

  var fn = function(ccb){
    ccb(undefined, 10);
  };

  stub = sinon.stub(qh_obj.ra,'do_post').returns(fn);

  qh_obj.create_test("fake_id", {switch_data: {a: 11}}, function(e,r) {
    console.log(e);
    (e.error).should.be.true
    done();
  });

【问题讨论】:

    标签: node.js asynchronous sinon stubbing


    【解决方案1】:

    我的错,我的规格有误。

    var fn = function(a,b,ccb){
        ccb(undefined, true);
      };
    
      stub = sinon.stub(qh_obj.ra,'do_post', fn)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-13
      • 2020-09-06
      • 1970-01-01
      • 2015-07-18
      • 1970-01-01
      相关资源
      最近更新 更多