2016-01-23 5 views

ответ

2

Cycle.js.org От:

Источники и приемники могут быть легко использованы в качестве Adapters and Ports. Это также означает, что тестирование в основном связано с подачей входов и проверкой вывода. Никакой глубокой насмешки не нужно. Ваше приложение представляет собой чистое преобразование данных.

Действительно, из этого GitHub issue из ядра Cycle.js, автор Cycle.js Андре Staltz объясняет, что:

Тестирование Cycle.js код в основном только о тестирования Наблюдаемые

Простейшие испытания имеют форму:

// Create the mocked user events 
const userEvents = mockDOMSource(...); 

// Use them in your tests against `main` 
const sinks = main({DOM: userEvents}); 

sinks.DOM.subscribe(function (vtree) { 
    // make assertions here on the vtree 
}); 

Обратите внимание, что здесь мы используем mockDOMSource. rx.js v5.3.0 выпущен mockDOMResponse, который был позже переименован в mockDOMSource. Это функция, которая позволяет легко издеваться над взаимодействием пользователей (макетировать намерения, такие как DOM.select('.foo').events('click')).

Вот example:

test('CounterButton should increment number by 1 when clicked', t => { 
    t.plan(4) 
    const DOM = mockDOMSource({'.inc': {click: Observable.repeat({}, 3)}}) 
    const sinks = CounterButton({DOM}) 
    sinks.DOM 
    .take(4) 
    .toArray() 
    .subscribe(vtrees => { 
     const counts = vtrees.map(vt => vt.children[0].text.match(/\d+$/)[0]) 
     t.equal(counts[0], '0', 'button has count 0') 
     t.equal(counts[1], '1', 'button has count 1') 
     t.equal(counts[2], '2', 'button has count 2') 
     t.equal(counts[3], '3', 'button has count 3') 
    }) 
}) 

Если вы ищете во всем мире в GitHub для mockDOMSourcehere и mockDOMResponsehere тогда вы можете findsomeexamples тестов Cycle.js.

Вы также можете проверить Testing section из Awesome Cycle.js репо.

Sidenote: Скоро мы сможем написать Marble Tests. К сожалению, это невозможно в Cycle.js 6, которое поддерживает только rxjs v4. Мраморные тесты - это новая функция для rxjs v5. См .: Rxjs testing - is it possible to use marble diagrams also in RxJs 4?

 Смежные вопросы

  • Нет связанных вопросов^_^