- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个关于 Angular 5 的项目,我遇到了以下问题。我有一个触发显示 snackbar 的组件 ComponentWithSnackBar:
showSnackBar() {
this.snackBar.open('Message text', 'Close', {
duration: 5000,
verticalPosition: 'top',
});
}
它按预期工作。但我不知道如何测试它。我尝试编写测试:
describe('ComponentWithSnackBar', () => {
let snackBar: MatSnackBar;
let overlayContainer: OverlayContainer;
let overlayContainerElement: HTMLElement;
function createComponent<T>(component: Type<T>, providers: Provider[] = [], declarations: any[] = []): ComponentFixture<T> {
TestBed.configureTestingModule({
imports: [AppModule, RouterTestingModule, NoopAnimationsModule],
declarations: declarations,
schemas: [CUSTOM_ELEMENTS_SCHEMA],
providers,
}).compileComponents();
inject([MatSnackBar, OverlayContainer], (sb: MatSnackBar, oc: OverlayContainer) => {
snackBar = sb;
overlayContainer = oc;
overlayContainerElement = oc.getContainerElement();
})();
return TestBed.createComponent<T>(component);
}
it(`Should display snack-bar`, fakeAsync(() => {
const fixture = createComponent(ComponentWithSnackBar);
const component: ComponentWithSnackBar = fixture.debugElement.componentInstance;
fixture.detectChanges();
const button = fixture.debugElement.query(By.css('button')); //button which triggers method showSnackBar
button.triggerEventHandler('click', null);
fixture.detectChanges();
flush();
const messageElement = overlayContainerElement.querySelector('snack-bar-container');
expect(messageElement.textContent).toContain('Message text');
}));
});
结果我得到错误
TypeError: Cannot read property 'textContent' of null
我做错了什么?感谢您的提前!
最佳答案
以下对我有用:
describe('MyComponent', () => {
let component: MyComponent;
let fixture: ComponentFixture<MyComponent>;
let element: any;
let overlayContainer: OverlayContainer;
let overlayContainerElement: HTMLElement;
let snackBar: MatSnackBar;
....
beforeEach(() => {
fixture = TestBed.createComponent(MyComponent);
component = fixture.componentInstance;
element = fixture.nativeElement;
fixture.detectChanges();
});
beforeEach(inject([MatSnackBar, OverlayContainer],
(sb: MatSnackBar, oc: OverlayContainer) => {
snackBar = sb;
overlayContainer = oc;
overlayContainerElement = oc.getContainerElement();
}));
....
it('should show my success message', () => {
const containerElement = overlayContainerElement.querySelector('simple-snack-bar');
expect(containerElement.textContent).toContain('My success text');
});
关于angular - 如何测试Material2 snack-bar?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49640113/
我有一个关于 Angular 5 的项目,我遇到了以下问题。我有一个触发显示 snackbar 的组件 ComponentWithSnackBar: showSnackBar() { this.s
作为一个初学者,我定义了一个 snackbar 功能(snackbarfunction),在程序的不同阶段应该显示 3 个元素(例如,当用户输入电子邮件时,消息“成功,谢谢”应该是 snackbar
这是在单击按钮时调用的函数。 handleClick() { var x = document.getElementById("snackbar"); x.classN
Activity 中使用的布局(针对 GoogleMap) 在同一个 Activity 中,这就是点击标记时创建 snackbar 的方式。 override fun
所以我一直在尝试从另一个相对布局向下/向上设置一个较小的相对布局的动画。 我用了this希望能解决我的问题。我正在考虑做类似 snackbar 的东西,但我仍然想给它添加一个图像,这可能完全是一个问题
我有一个使用 newt/snack 模块的 Python 程序,它在 Fedora 17 正式版中运行良好。 我需要将程序移植到initrd ram disk,即只运行initrd/vmlinuz但没
我很惊讶之前似乎没有人问过这个问题,这意味着答案可能很明显,但我有一个带有文本字段和按钮的屏幕。用户在文本字段中输入他们的电子邮件。然后按下按钮查看电子邮件是否在数据库中。然后程序会显示带有“成功”文
我正在使用 Expo并且有一个snack使用 react-native-elements而且我似乎无法让通知图标完全居中。它看起来稍微偏左。我尝试设置 marginRight: 0 但这没有帮助。 谁
这是xml布局 这是输出: 我使用 CoordinatorLayout 作为我的 xml 文件 和 mapbox 布局的根来显示 map 。我不知道发生了什么
如何在 Snack.expo.io 上使用本地字体? 我有一个 ttf 字体,我想将其用作 Snack.expo.io 上的证据,但我不太明白如何做到这一点。 有什么建议吗? 最佳答案 当您创建小吃时
我想嵌入 Expo Snacks在 Stack Overflow 问题或答案中,有可能吗? 最佳答案 如果单击 Stack Overflow 编辑工具栏上的“JavaScript/HTML/CSS S
所以我下载了 Snack 并将 Snacklib 放入 python/tcl 中,并将 tkSnack.py 放入 python/Lib 中,但我仍然没有听到任何声音。我没有收到任何错误,但我仍然没有
我在 Linux Mint 13 (Maya)、tk8.5 (wish) 中使用零食包。 我的音频输出是带有 pulseaudio 软件的模拟立体声。 据此:http://www.speech.kth
请问我是 React Native 的新手,我正在 snack.expo.io 上做一个项目它们对我来说似乎很好,但我希望将 js (component1.js) 文件连接到父 App.js 文件,但
我仔细阅读了 android L 的设计指南,发现了一种非常直观的错误显示方式。现在我已经开始在我的应用程序中实现它,但在网络上没有找到任何帮助。 我曾尝试搜索这种模式的实现,但找到了一个库,如 cr
我正在创建一个我想在其中使用 Snack Bar 的 android 应用程序,在那个 snackbar 里,我想要 2 个不同的词,我们必须对它们执行 2 个不同的操作。 最佳答案 来自 Googl
这是我的代码片段。 Filled_Func () 是按升序对我的“非蛇体”位置进行排序。换句话说,我使用Filled[]来保存未填充方 block 。 :-) Create_Cookie()是选择co
我想尝试在 snack.expo.io 上使用钩子(Hook),但它似乎不起作用。 有什么办法可以知道什么版本使用snack.expo? 最佳答案 如Expo Snacks网站右下角的@Dres,你可
我看到的答案与我正在寻找的答案有点相似,但没有一个能最终解决我的具体问题。例如this answer向您展示如何更改 snackbar 的背景颜色并且它有效。如果您尝试操纵 snackbar 的宽度,
我是一名优秀的程序员,十分优秀!