angular - 使用 Jasmine 测试 ngSwitch

标签 angular testing karma-jasmine ng-switch

我的组件中有一段 HTML:

<div [ngSwitch]="data.mode" class="data-mode">
    <span ngSwitchWhen="mode1">Mode 1 Activated</span>
    <span ngSwitchWhen="mode2">Mode 2 Activated</span>
</div>

我想通过 karma-jasmine 测试它。我可以得到根元素

const headerMode = fixture.debugElement.query(By.css(".data-mode"));

这将返回具有 2 个子元素的根节点,但我看不到这两个元素中的哪个是事件的。

我该怎么做?

最佳答案

By.css('.data-mode > span') 应该返回激活的元素。请记住调用 fixture.detectChanges(); 以强制运行 Angular 的更改检测并影响测试中的元素。

关于angular - 使用 Jasmine 测试 ngSwitch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44106227/

相关文章:

angular - nativeElement.click() 和事件处理程序的点击有什么区别?

javascript - Angular karma 测试 $.cookie

angular - Angular 组件 ExpressionChangedAfterItHasBeenCheckedError 中的 Mat 对话框错误

javascript - 在 Angular 中使用双向绑定(bind)时如何预选单选按钮?

javascript - 在使用 angular + .net Core 开发应用程序时,我应该将资源放在哪里

android - 如何确保 Android 应用程序可以在每台设备上运行

testing - 转换为模块化 sinatra 应用程序中断测试

testing - 使用 Cucumber 和 JAVA8 截取特定页面的屏幕截图

javascript - 单元测试 $scope.$on - 未捕获事件

javascript - Angular 2简单动画