Как проверить события компонента, когда событие и обработчик находятся в разных компонентах?

В эталонном тестовом ресурсе "Жасмин" регистрация и обработка события компонента (например,ComponentEvent) выполняются в одном и том же компоненте (например, EventHandling). Таким образом, мы можем проверить результат после запуска события.

https://github.com/forcedotcom/LightningTestingService/blob/master/lightning-component-tests/test/default/staticresources/jasmineExampleTests.resource

/**
     * Component under test: 'c:egEventHandling'
     * This spec shows how to validate a component's handling of component- and
     * application-level events.
     */
    describe('c:egEventHandling', function() {
        it('handles component- and application-level events', function(done) {
            $T.createComponent("c:egEventHandling", null)
            .then(function(component){
                var cmpEvent = component.getEvent("sampleEvent");
                cmpEvent.setParams({"data":"component event fired"});
                cmpEvent.fire()
                expect(component.get("v.message")).toBe("component event fired");
                $T.fireApplicationEvent("c:egApplicationEvent", {"data":"application event fired"});
                expect(component.get("v.message")).toBe("application event fired");
                done();
            }).catch(function(e) {
                done.fail(e);
            });
        });
    });

Возникает проблема при проверке результатов после запуска события компонента, когда регистрация события и его обработчик выполняются в разных компонентах.

Мы запускаем событие уровня компонента в компоненте 1, а обработчик вызывается в Компоненте 2,

Мы пытаемся протестировать событие компонента, когда компонент запускается, но мы не можем увидеть обработчик, вызванный в Компоненте 2.

Пожалуйста, помогите нам получить правильное решение для приведенного ниже кода

 $T.createComponent("c:tagr_Tag",attributes,true) 
  .then(function(component) {
  var evt = component.getEvent('componentEvent');
  evt.setParam('entity', entity);  
  evt.fire();
expect(evt.fire()).tobe.(true);
}

Здесь событие вызывается из tagr_Tag, но обработчик не вызывается из другого компонента. Пожалуйста, помогите нам прийти к решению, используя любой подход, например spyon или что-то еще. Заранее спасибо

0 ответов

Другие вопросы по тегам