在引用的 jasmine 测试资源中,组件事件(egComponentEvent)注册和处理程序是在同一个组件(egEventHandling)中完成的。因此,我们可以在事件触发后测试结果。
/**
* 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 或其他方法)到达解决方案。提前致谢