Решение состоит в том, чтобы убедиться, что модалы скрыты после каждого теста, в котором выполняются фрагменты кода, которые могут отображать модалы:
import { BsModalService } from 'ngx-bootstrap';
// test definitions ...
afterEach(() => {
const modalService: BsModalService = TestBed.get(BsModalService);
modalService.hide(1);
});
этот метод использует hide (level: number) *Метод 1005 * из BsModalService .
Если у вас есть вложенные модалы, вам может потребоваться скрыть больше уровней (например, hide(2)
, hide(3)
и т. Д.).
Мне показалось полезным иметь вспомогательную функцию, которую я могу использовать в своих тестах:
export function closeModalsAfterEach(upToLevel: number = 1) {
afterEach(() => {
const modalService: BsModalService = TestBed.get(BsModalService);
for (let level = 1; level <= upToLevel; level++) {
modalService.hide(level);
}
});
}