HarnessEnvironment
Базовый класс среды тестовой оболочки, который можно расширить, чтобы использовать ComponentHarness в разных тестовых средах (например, testbed, protractor и т. д.). Этот класс реализует функциональность как HarnessLoader, так и LocatorFactory. Класс параметризован типом исходного элемента, E, используемым в конкретной тестовой среде.
API
abstract class HarnessEnvironment<E> implements HarnessLoader ,LocatorFactory {
protected constructor(rawRootElement: E): HarnessEnvironment<E>;
get rootElement(): TestElement;
documentRootLocatorFactory(): LocatorFactory;
locatorFor<T extends (HarnessQuery<any> | string)[]>(...queries: T): () => Promise<LocatorFnResult<T>>;
locatorForOptional<T extends (HarnessQuery<any> | string)[]>(...queries: T): () => Promise<LocatorFnResult<T> | null>;
locatorForAll<T extends (HarnessQuery<any> | string)[]>(...queries: T): () => Promise<LocatorFnResult<T>[]>;
rootHarnessLoader(): Promise<HarnessLoader>;
harnessLoaderFor(selector: string): Promise<HarnessLoader>;
harnessLoaderForOptional(selector: string): Promise<HarnessLoader | null>;
harnessLoaderForAll(selector: string): Promise<HarnessLoader[]>;
getHarness<T extends ComponentHarness>(query: HarnessQuery<T>): Promise<T>;
getHarnessOrNull<T extends ComponentHarness>(query: HarnessQuery<T>): Promise<T | null>;
getHarnessAtIndex<T extends ComponentHarness>(query: HarnessQuery<T>, offset: number): Promise<T>;
getAllHarnesses<T extends ComponentHarness>(query: HarnessQuery<T>): Promise<T[]>;
countHarnesses<T extends ComponentHarness>(query: HarnessQuery<T>): Promise<number>;
hasHarness<T extends ComponentHarness>(query: HarnessQuery<T>): Promise<boolean>;
getChildLoader(selector: string): Promise<HarnessLoader>;
getAllChildLoaders(selector: string): Promise<HarnessLoader[]>;
protected createComponentHarness<T extends ComponentHarness>(harnessType: ComponentHarnessConstructor<T>, element: E): T;
abstract forceStabilize(): Promise<void>;
abstract waitForTasksOutsideAngular(): Promise<void>;
protected abstract getDocumentRoot(): E;
protected abstract createTestElement(element: E): TestElement;
protected abstract createEnvironment(element: E): HarnessEnvironment<E>;
protected abstract getAllRawElements(selector: string): Promise<E[]>;
}
constructor
HarnessEnvironment<E>HarnessEnvironment<E>
rootElement
TestElementКорневой элемент этой HarnessEnvironment в виде TestElement.
rootElement
TestElementdocumentRootLocatorFactory
LocatorFactoryВозвращает фабрику локаторов с корнем в корне документа.
LocatorFactory
locatorFor
() => Promise<LocatorFnResult<T>>Создаёт асинхронную функцию поиска, которую можно использовать для поиска экземпляра ComponentHarness или элемента в корневом элементе этой HarnessEnvironment.
Например, для следующего DOM и при условии, что DivHarness.hostSelector — это 'div'
<div id="d1"></div><div id="d2"></div>
ожидается следующее:
await lf.locatorFor(DivHarness, 'div')() // Gets a `DivHarness` instance for #d1
await lf.locatorFor('div', DivHarness)() // Gets a `TestElement` instance for #d1
await lf.locatorFor('span')() // Throws because the `Promise` rejects
TСписок запросов, задающих, какие тестовые оболочки и элементы нужно найти:
stringищет элементы, соответствующие CSS-селектору, заданному строкой.- Конструктор
ComponentHarnessищет экземплярыComponentHarness, соответствующие указанному классу. HarnessPredicateищет экземплярыComponentHarness, соответствующие указанному предикату.
() => Promise<LocatorFnResult<T>>
locatorForOptional
() => Promise<LocatorFnResult<T> | null>Создаёт асинхронную функцию поиска, которую можно использовать для поиска экземпляра ComponentHarness или элемента в корневом элементе этой HarnessEnvironmnet.
Например, для следующего DOM и при условии, что DivHarness.hostSelector — это 'div'
<div id="d1"></div><div id="d2"></div>
ожидается следующее:
await lf.locatorForOptional(DivHarness, 'div')() // Gets a `DivHarness` instance for #d1
await lf.locatorForOptional('div', DivHarness)() // Gets a `TestElement` instance for #d1
await lf.locatorForOptional('span')() // Gets `null`
TСписок запросов, задающих, какие тестовые оболочки и элементы нужно найти:
stringищет элементы, соответствующие CSS-селектору, заданному строкой.- Конструктор
ComponentHarnessищет экземплярыComponentHarness, соответствующие указанному классу. HarnessPredicateищет экземплярыComponentHarness, соответствующие указанному предикату.
() => Promise<LocatorFnResult<T> | null>
locatorForAll
() => Promise<LocatorFnResult<T>[]>Создаёт асинхронную функцию поиска, которую можно использовать для поиска экземпляров ComponentHarness или элементов в корневом элементе этой HarnessEnvironment.
Например, для следующего DOM и при условии, что DivHarness.hostSelector — это 'div', а IdIsD1Harness.hostSelector — это '#d1'
<div id="d1"></div><div id="d2"></div>
ожидается следующее:
// Gets [DivHarness for #d1, TestElement for #d1, DivHarness for #d2, TestElement for #d2]
await lf.locatorForAll(DivHarness, 'div')()
// Gets [TestElement for #d1, TestElement for #d2]
await lf.locatorForAll('div', '#d1')()
// Gets [DivHarness for #d1, IdIsD1Harness for #d1, DivHarness for #d2]
await lf.locatorForAll(DivHarness, IdIsD1Harness)()
// Gets []
await lf.locatorForAll('span')()
TСписок запросов, задающих, какие тестовые оболочки и элементы нужно найти:
stringищет элементы, соответствующие CSS-селектору, заданному строкой.- Конструктор
ComponentHarnessищет экземплярыComponentHarness, соответствующие указанному классу. HarnessPredicateищет экземплярыComponentHarness, соответствующие указанному предикату.
() => Promise<LocatorFnResult<T>[]>
rootHarnessLoader
Promise<HarnessLoader>Promise<HarnessLoader>
harnessLoaderFor
Promise<HarnessLoader>Возвращает экземпляр HarnessLoader для элемента внутри корневого элемента этой HarnessEnvironment.
stringСелектор корневого элемента.
Promise<HarnessLoader>
harnessLoaderForOptional
Promise<HarnessLoader | null>Возвращает экземпляр HarnessLoader для элемента внутри корневого элемента этой HarnessEnvironment.
stringСелектор корневого элемента.
Promise<HarnessLoader | null>
harnessLoaderForAll
Promise<HarnessLoader[]>Возвращает список экземпляров HarnessLoader — по одному для каждого найденного элемента.
stringСелектор корневого элемента.
Promise<HarnessLoader[]>
getHarness
Promise<T>Ищет экземпляр компонента, соответствующий заданному типу тестовой оболочки, внутри корневого элемента HarnessEnvironment и возвращает для этого экземпляра ComponentHarness. Если найдено несколько подходящих компонентов, возвращается тестовая оболочка для первого. Если подходящий компонент не найден, выбрасывается ошибка.
Promise<T>
getHarnessOrNull
Promise<T | null>Ищет экземпляр компонента, соответствующий заданному типу тестовой оболочки, внутри корневого элемента HarnessEnvironment и возвращает для этого экземпляра ComponentHarness. Если найдено несколько подходящих компонентов, возвращается тестовая оболочка для первого. Если подходящий компонент не найден, возвращается null.
Promise<T | null>
getHarnessAtIndex
Promise<T>Ищет экземпляр компонента, соответствующий заданному типу тестовой оболочки и индексу, внутри корневого элемента HarnessEnvironment и возвращает для этого экземпляра ComponentHarness. Индекс задаёт смещение компонента, который нужно найти. Если по указанному индексу подходящий компонент не найден, выбрасывается ошибка.
number
Promise<T>
getAllHarnesses
Promise<T[]>Ищет все экземпляры компонента, соответствующие заданному типу тестовой оболочки, внутри корневого элемента HarnessEnvironment и возвращает список ComponentHarness для каждого экземпляра.
Promise<T[]>
countHarnesses
Promise<number>Ищет все экземпляры компонента, соответствующие заданному типу тестовой оболочки, внутри корневого элемента HarnessEnvironment и возвращает их количество.
Promise<number>
hasHarness
Promise<boolean>Ищет экземпляр компонента, соответствующий заданному типу тестовой оболочки, внутри корневого элемента HarnessEnvironment и возвращает логическое значение, указывающее, найден ли хотя бы один экземпляр.
Promise<boolean>
getChildLoader
Promise<HarnessLoader>Ищет элемент с заданным селектором внутри корневого элемента среды и возвращает HarnessLoader с корнем в найденном элементе. Если селектору соответствуют несколько элементов, используется первый. Если совпадений нет, выбрасывается ошибка.
Promise<HarnessLoader>
getAllChildLoaders
Promise<HarnessLoader[]>Ищет все элементы с заданным селектором внутри корневого элемента среды и возвращает массив экземпляров HarnessLoader с корнем в соответствующем элементе — по одному экземпляру для каждого найденного элемента.
Promise<HarnessLoader[]>
createComponentHarness
TСоздаёт ComponentHarness для заданного типа тестовой оболочки и заданного исходного элемента узла.
E
T
forceStabilize
Promise<void>Выполняет обнаружение изменений и завершает асинхронные задачи, отслеживаемые в зоне Angular. В большинстве случаев вызывать этот метод вручную не требуется. Однако в некоторых особых случаях он может понадобиться для полной обработки событий анимации. Это абстрактный метод, который должен быть реализован в подклассах.
Promise<void>
waitForTasksOutsideAngular
Promise<void>Ожидает завершения всех запланированных или выполняющихся асинхронных задач. Это позволяет авторам тестовых оболочек ожидать завершения асинхронных задач вне зоны Angular. Это абстрактный метод, который должен быть реализован в подклассах.
Promise<void>
getDocumentRoot
EВозвращает корневой элемент документа.
E
createTestElement
TestElementcreateEnvironment
HarnessEnvironment<E>Создаёт HarnessEnvironment с корнем в заданном исходном элементе.
E
HarnessEnvironment<E>
getAllRawElements
Promise<E[]>Возвращает список всех элементов, соответствующих заданному селектору внутри корневого элемента этой среды.
string
Promise<E[]>
Super-powered by Google ©2010–2025.
Code licensed under an MIT-style License. Documentation licensed under CC BY 4.0.
https://angular.dev/api/cdk/testing/HarnessEnvironment