Spec-Zone.ru › Angular

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>
@paramrawRootElementE

Корневой нативный элемент этой HarnessEnvironment.

@returnsHarnessEnvironment<E>

rootElement

TestElement

Корневой элемент этой HarnessEnvironment в виде TestElement.

rootElement

TestElement

documentRootLocatorFactory

LocatorFactory

Возвращает фабрику локаторов с корнем в корне документа.

@returnsLocatorFactory

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
@paramqueriesT

Список запросов, задающих, какие тестовые оболочки и элементы нужно найти:

  • string ищет элементы, соответствующие CSS-селектору, заданному строкой.
  • Конструктор ComponentHarness ищет экземпляры ComponentHarness, соответствующие указанному классу.
  • HarnessPredicate ищет экземпляры ComponentHarness, соответствующие указанному предикату.
@returns() => 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`
@paramqueriesT

Список запросов, задающих, какие тестовые оболочки и элементы нужно найти:

  • string ищет элементы, соответствующие CSS-селектору, заданному строкой.
  • Конструктор ComponentHarness ищет экземпляры ComponentHarness, соответствующие указанному классу.
  • HarnessPredicate ищет экземпляры ComponentHarness, соответствующие указанному предикату.
@returns() => 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')()
@paramqueriesT

Список запросов, задающих, какие тестовые оболочки и элементы нужно найти:

  • string ищет элементы, соответствующие CSS-селектору, заданному строкой.
  • Конструктор ComponentHarness ищет экземпляры ComponentHarness, соответствующие указанному классу.
  • HarnessPredicate ищет экземпляры ComponentHarness, соответствующие указанному предикату.
@returns() => Promise<LocatorFnResult<T>[]>

rootHarnessLoader

Promise<HarnessLoader>
@returnsPromise<HarnessLoader>

harnessLoaderFor

Promise<HarnessLoader>

Возвращает экземпляр HarnessLoader для элемента внутри корневого элемента этой HarnessEnvironment.

@paramselectorstring

Селектор корневого элемента.

@returnsPromise<HarnessLoader>

harnessLoaderForOptional

Promise<HarnessLoader | null>

Возвращает экземпляр HarnessLoader для элемента внутри корневого элемента этой HarnessEnvironment.

@paramselectorstring

Селектор корневого элемента.

@returnsPromise<HarnessLoader | null>

harnessLoaderForAll

Promise<HarnessLoader[]>

Возвращает список экземпляров HarnessLoader — по одному для каждого найденного элемента.

@paramselectorstring

Селектор корневого элемента.

@returnsPromise<HarnessLoader[]>

getHarness

Promise<T>

Ищет экземпляр компонента, соответствующий заданному типу тестовой оболочки, внутри корневого элемента HarnessEnvironment и возвращает для этого экземпляра ComponentHarness. Если найдено несколько подходящих компонентов, возвращается тестовая оболочка для первого. Если подходящий компонент не найден, выбрасывается ошибка.

@paramqueryHarnessQuery<T>

Запрос для создания тестовой оболочки

@returnsPromise<T>

getHarnessOrNull

Promise<T | null>

Ищет экземпляр компонента, соответствующий заданному типу тестовой оболочки, внутри корневого элемента HarnessEnvironment и возвращает для этого экземпляра ComponentHarness. Если найдено несколько подходящих компонентов, возвращается тестовая оболочка для первого. Если подходящий компонент не найден, возвращается null.

@paramqueryHarnessQuery<T>

Запрос для создания тестовой оболочки

@returnsPromise<T | null>

getHarnessAtIndex

Promise<T>

Ищет экземпляр компонента, соответствующий заданному типу тестовой оболочки и индексу, внутри корневого элемента HarnessEnvironment и возвращает для этого экземпляра ComponentHarness. Индекс задаёт смещение компонента, который нужно найти. Если по указанному индексу подходящий компонент не найден, выбрасывается ошибка.

@paramqueryHarnessQuery<T>

Запрос для создания тестовой оболочки

@paramoffsetnumber
@returnsPromise<T>

getAllHarnesses

Promise<T[]>

Ищет все экземпляры компонента, соответствующие заданному типу тестовой оболочки, внутри корневого элемента HarnessEnvironment и возвращает список ComponentHarness для каждого экземпляра.

@paramqueryHarnessQuery<T>

Запрос для создания тестовой оболочки

@returnsPromise<T[]>

countHarnesses

Promise<number>

Ищет все экземпляры компонента, соответствующие заданному типу тестовой оболочки, внутри корневого элемента HarnessEnvironment и возвращает их количество.

@paramqueryHarnessQuery<T>

Запрос для создания тестовой оболочки

@returnsPromise<number>

hasHarness

Promise<boolean>

Ищет экземпляр компонента, соответствующий заданному типу тестовой оболочки, внутри корневого элемента HarnessEnvironment и возвращает логическое значение, указывающее, найден ли хотя бы один экземпляр.

@paramqueryHarnessQuery<T>

Запрос для создания тестовой оболочки

@returnsPromise<boolean>

getChildLoader

Promise<HarnessLoader>

Ищет элемент с заданным селектором внутри корневого элемента среды и возвращает HarnessLoader с корнем в найденном элементе. Если селектору соответствуют несколько элементов, используется первый. Если совпадений нет, выбрасывается ошибка.

@paramselectorstring

Селектор корневого элемента нового HarnessLoader

@returnsPromise<HarnessLoader>

getAllChildLoaders

Promise<HarnessLoader[]>

Ищет все элементы с заданным селектором внутри корневого элемента среды и возвращает массив экземпляров HarnessLoader с корнем в соответствующем элементе — по одному экземпляру для каждого найденного элемента.

@paramselectorstring

Селектор корневого элемента нового HarnessLoader

@returnsPromise<HarnessLoader[]>

createComponentHarness

T

Создаёт ComponentHarness для заданного типа тестовой оболочки и заданного исходного элемента узла.

@paramharnessTypeComponentHarnessConstructor<T>
@paramelementE
@returnsT

forceStabilize

Promise<void>

Выполняет обнаружение изменений и завершает асинхронные задачи, отслеживаемые в зоне Angular. В большинстве случаев вызывать этот метод вручную не требуется. Однако в некоторых особых случаях он может понадобиться для полной обработки событий анимации. Это абстрактный метод, который должен быть реализован в подклассах.

@returnsPromise<void>

waitForTasksOutsideAngular

Promise<void>

Ожидает завершения всех запланированных или выполняющихся асинхронных задач. Это позволяет авторам тестовых оболочек ожидать завершения асинхронных задач вне зоны Angular. Это абстрактный метод, который должен быть реализован в подклассах.

@returnsPromise<void>

getDocumentRoot

E

Возвращает корневой элемент документа.

@returnsE

createTestElement

TestElement

Создаёт TestElement из исходного элемента.

@paramelementE
@returnsTestElement

createEnvironment

HarnessEnvironment<E>

Создаёт HarnessEnvironment с корнем в заданном исходном элементе.

@paramelementE
@returnsHarnessEnvironment<E>

getAllRawElements

Promise<E[]>

Возвращает список всех элементов, соответствующих заданному селектору внутри корневого элемента этой среды.

@paramselectorstring
@returnsPromise<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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API