防止意外更改子组件发出的事件名称

时间:2018-03-28 08:25:54

标签: angular unit-testing typescript karma-jasmine angular-test

如何防止子组件发出的事件名称的意外更改?

Data %>% mutate(group = factor(group), date = as.POSIXct(date)) %>% 
  group_by(group, date) %>% #group
  summarise(prop = sum(DV=="1")/n()) %>% #calculate proportion 
  ggplot()+ theme_classic() + 
  geom_line(aes(x = date, y = prop, color = group)) +
  geom_point(aes(x = date, y = prop, color = group)) +
  geom_smooth(aes(x = date, y = prop, color = group), se = F, method = 'loess') +
  scale_color_manual(values = c('0' = 'black', '1' = 'darkgrey'),
                     labels = c('0' = 'Remaining sample', '1' = 'Group 1'))

如果在模板或ts中更改@Component({ selector: 'app-update', template: '<app-reboot-panel (reboot)="doReboot()"></app-reboot-panel>' }) export class ParentComponent { doReboot() { console.log('reboot action started'); } } @Component({ selector: 'app-reboot-panel', template: '<div><button (click)="onReboot()">Reboot</button></div>' }) export class RebootComponent { @Output() reboot = new EventEmitter(); onReboot() { console.log('reboot buton clicked'); this.reboot.emit(); } } 的名称,则AoT构建将检测到它并失败。

如果更改了发出事件ParentComponent.doReboot()的名称,则编译器不会检测到它。

Angular中是否有内置机制来检查@Output() rebootParentComponent中是否存在RebootComponent中使用的所有事件?如果不是,我如何在父组件中单元测试正确的@Output赋值?我知道我可以对RebootComponent进行单元测试,但可以更改@Output() reboot并修正测试,但不会触及ParentComponent

0 个答案:

没有答案