При тестировании компонента Angular я могу получить DebugElement
из ComponentFixture
и использовать его для запроса с помощью метода query
следующим образом:
const fixture = TestBed.createComponent(MyComponent);
const debugEl = fixture.debugElement;
...
const elem: DebugElement = debugEl.query(By.css("some-inner-component"))
Но, когда тестирование MatDialog
, я не могу найти способ получить DebugElement
, все, что я могу получить, это componentInstance
, поэтому я вынужден использовать document.querySelector
для запроса внутреннего elements:
const dialog = TestBed.get(MatDialog);
const dialogRef = dialog.open(MyComponent);
...
const elem: HTMLElement = document.querySelector("some-inner-component")
Есть ли способ получить DebugElement, чтобы я мог тестировать диалоги материалов так же, как я тестирую остальную часть моего кода?
Причина, по которой я этого не делаю хотите использовать HTMLElement
, потому что все наши собственные библиотеки тестирования уже ожидают DebugElements, поэтому было бы большим изменением изменить его, чтобы он также принимал HTMLElements.
Спасибо.