Spec-Zone.ru › Angular

LocatorFactory

Интерфейс для создания асинхронных функций локатора, используемых для поиска элементов и тестовых оболочек компонентов. Этот интерфейс используется авторами ComponentHarness для создания функций локатора для подкласса ComponentHarness.

API

interface LocatorFactory {
  documentRootLocatorFactory(): LocatorFactory;
  rootElement: TestElement;
  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[]>;
  forceStabilize(): Promise<void>;
  waitForTasksOutsideAngular(): Promise<void>;
}

documentRootLocatorFactory

LocatorFactory

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

@returnsLocatorFactory

rootElement

TestElement

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

locatorFor

() => Promise<LocatorFnResult<T>>

Создает асинхронную функцию локатора, которую можно использовать для поиска экземпляра ComponentHarness или элемента внутри корневого элемента этой LocatorFactory.

Например, для следующей 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 или элемента внутри корневого элемента этой LocatorFactory.

Например, для следующей 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 или элементов внутри корневого элемента этой LocatorFactory.

Например, для следующей 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 для элемента внутри корневого элемента этой LocatorFactory.

@paramselectorstring

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

@returnsPromise<HarnessLoader>

harnessLoaderForOptional

Promise<HarnessLoader | null>

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

@paramselectorstring

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

@returnsPromise<HarnessLoader | null>

harnessLoaderForAll

Promise<HarnessLoader[]>

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

@paramselectorstring

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

@returnsPromise<HarnessLoader[]>

forceStabilize

Promise<void>

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

@returnsPromise<void>

waitForTasksOutsideAngular

Promise<void>

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

@returnsPromise<void>

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/LocatorFactory

Spec-Zone.ru

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