Каков основной шаблон для тестирования запросов ajax с помощью тестера веб-компонентов без сервера sinon?

Как настроить следующий элемент/тест с помощью web-component-tester и полимера так, чтобы (1) запрос XHR завершился, (2) затем запустилось утверждение, в результате чего (3) тест прошел ?

/мой-элемент.html

<dom-module id="my-element">
  <template>
  <iron-request id="req"><iron-request>
  </template>

  <script>
    (function() {
      'use strict';

      Polymer({
        is: 'my-element',
        properties: {
          newVal: Object
        },
        fetchedStuff: function(ironRequest) {
          this.set('newVal', ironRequest.response);
          console.log('This gets logged after tests run.'); // <--- this is firing too late!
        },
        ready: function() {
          this.$.req.resolveCompletes = this.fetchedStuff;
          this.$.req.send({url: '/my.json'});
        }
      });
    })();
  </script>
</dom-module>

/мой-элемент-тест.html

<test-fixture id="basic">
  <template>
     <my-element></my-element>
  </template>
</test-fixture>

<script>
  suite('my-element tests', function() {
    test('Item lengths should be equalled', function(done) {
      element = fixture('basic');
      flush(function() {
        assert.equal(element.newVal, {"name": "Polymer"});
        done();
      });
    })
  });
</script>

Фон:

Мы хотели бы протестировать вызовы ajax без использования сервера Sinon, предоставленного в тестере веб-компонентов (то есть мы хотели бы сделать реальные вызовы xhr. Мы хотели бы сделать это, потому что Запросы xhr должны возвращать содержимое из файлов, которые автоматически создаются из другой системы.

FWIW, я пытался размещать обратные вызовы и обещания в разных местах, в том числе с использованием элемента iron-ajax, и я не могу найти идеального способа решить эту проблему. Единственное решение, которое я нашел до сих пор, — это создать событие под названием «executeTests», которое кажется крутым.


person btelles    schedule 09.12.2015    source источник
comment
Это может вам помочь: stackoverflow.com/questions/34214429/   -  person Pascal Gula    schedule 13.12.2015