javascript - Angular 单元测试验证子组件的方法调用
问题描述
我有一个带有侧边栏组件的页面和带有页面组件的内容部分。从页面组件中,当我单击按钮时,侧边栏组件会切换。下面是代码,
async onSidebarButtonPressed() {
const sidebar = document.querySelector('#filter-sidebar');
console.log(sidebar);
(sidebar as any)?.toggle();
}
现在我想介绍一下场景
切换()
叫做。我尝试插入侧边栏组件,
@Component({ selector: 'cf-wc-sidebar-filter-v9', template: '' })
class SidebarStubComponent {
toggle() { /* */}
}
..
..
..
it('should toggle sidebar action', async () => {
const sidebarSpy= spyOn(document,'querySelector').and.callFake(()=>SidebarStubComponent);
fixture.detectChanges();
await component.onSidebarButtonPressed();
});
我收到错误“ _a.toggle 不是函数”。最初我尝试使用 state 并且技术人员告诉不要为此使用 state。我试过@ViewChild,它没有定义。由于这两个组件完全断开
我还能如何测试这种情况?
解决方案
推荐阅读
- reactjs - React + Typescript 问题与“......不可分配给类型'IntrinsicAttributes & RefAttributes
’。” - javascript - 寻找子字符串替代javascript
- angular - Angular 6-将数据从模板传递到控制器的最佳方式?
- javascript - 无法将 setSelectionRange 添加到所选元素
- java - 使用正则表达式解析 n - 系统输入中的参数
- php - 我想在联系表格 7 邮件正文中传递 php 变量
- ios - 键盘显示额外空间 Swift
- c++ - 如何为具有超过 4 个元素的所有 std::array 部分专门化工厂结构?
- azure-ad-b2c - 使用社交身份登录 Azure AD B2C 门户
- shopify - 如何使用 shopify api 从购物车页面更新产品属性