使用webcomponentstester

时间:2016-07-12 08:56:38

标签: javascript ajax unit-testing polymer

我有以下代码:

_getDetails: function() {
      var headers;
      var resp;
      var self = this;
      headers = this._setHeaderFunction();
      this.prepareAjaxCall({
        url: http: jsonplaceholder.typicode.com/posts/1,
        headers: headers,
        method: 'GET',
        success: function(request) {
          self._handler(request.response, false);
        },
        error: function(data){
          resp = event.currentTarget.response.info;
          self._handler(resp, true);
        }
      });

      return this.$.ajax.generateRequest();

我正在尝试编写一个测试套件(mocha,sinon)来覆盖这个_getDetails函数。到目前为止,除了success()和error()方法之外,我能够测试身体的大部分。当我执行测试验证时,它告诉我没有涵盖有关这些方法的行。到目前为止我试过这个:

          var ajax = myEl.$.ajax;
          sinon.spy(ajax,'generateRequest');
          sinon.spy(myEl, '_handler');
          sinon.spy(ajax, '_boundHandleResponse')
          var request = myEl._getDetails();

          //in the prepareAjaxCall method, if the object passed to the function has a success method, it is assigned to the iron-ajax's _boundHandleResponse variable. 
          var success = ajax._boundHandleResponse;

          setTimeout(function () {
            success(request, true);
            expect(success).to.have.been.calledWith(request);
            expect(myEl._handler).to.have.been.calledWith(request.response, false);
          },1000)

如何隔离成功和错误函数以便单独测试它们,从而让mocha将这些行识别为被测试?

0 个答案:

没有答案