• 개요
@angular/cdk/testing

HarnessEnvironment

클래스

서로 다른 테스트 환경(예: testbed, protractor 등)에서 ComponentHarness를 사용할 수 있도록 확장할 수 있는 기본 하네스 환경 클래스입니다. 이 클래스는 HarnessLoader와 LocatorFactory의 기능을 모두 구현합니다. 이 클래스의 제네릭 타입 E는 해당 테스트 환경에서 사용하는 원시 엘리먼트 타입입니다.

API

    
      abstract class HarnessEnvironment<E> implements HarnessLoader ,LocatorFactory {}
    
    

constructor

HarnessEnvironment<E>
@paramrawRootElementE

이 HarnessEnvironment의 네이티브 루트 엘리먼트입니다.

rootElement

TestElement

TestElement로 표현한 이 HarnessEnvironment의 루트 엘리먼트입니다.

documentRootLocatorFactory

LocatorFactory

문서 루트를 기준으로 하는 로케이터 팩토리를 가져옵니다.

locatorFor

() => Promise<LocatorFnResult<T>>

이 HarnessEnvironment의 루트 엘리먼트 아래에서 ComponentHarness 인스턴스나 엘리먼트를 찾는 데 사용할 비동기 로케이터 함수를 생성합니다.

예를 들어 다음 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

검색할 하네스와 엘리먼트를 지정하는 쿼리 목록입니다:

@returns() => Promise<LocatorFnResult<T>>

locatorForOptional

() => Promise<LocatorFnResult<T> | null>

이 HarnessEnvironmnet의 루트 엘리먼트 아래에서 ComponentHarness 인스턴스나 엘리먼트를 찾는 데 사용할 비동기 로케이터 함수를 생성합니다.

예를 들어 다음 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

검색할 하네스와 엘리먼트를 지정하는 쿼리 목록입니다:

@returns() => Promise<LocatorFnResult<T> | null>

locatorForAll

() => Promise<LocatorFnResult<T>[]>

이 HarnessEnvironment의 루트 엘리먼트 아래에서 ComponentHarness 인스턴스들이나 엘리먼트들을 찾는 데 사용할 비동기 로케이터 함수를 생성합니다.

예를 들어 다음 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

검색할 하네스와 엘리먼트를 지정하는 쿼리 목록입니다:

@returns() => Promise<LocatorFnResult<T>[]>

harnessLoaderFor

Promise<HarnessLoader>

이 HarnessEnvironment의 루트 아래 엘리먼트에 대한 HarnessLoader 인스턴스를 가져옵니다.

@paramselectorstring

루트 엘리먼트의 선택자입니다.

@returnsPromise<HarnessLoader>

harnessLoaderForOptional

Promise<HarnessLoader | null>

이 HarnessEnvironment의 루트 아래 엘리먼트에 대한 HarnessLoader 인스턴스를 가져옵니다.

@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 Zone에서 추적하는 변경 감지와 비동기 작업을 모두 처리합니다. 대부분 직접 호출할 필요는 없지만, 일부 예외적인 상황에서는 애니메이션 이벤트를 완전히 처리하기 위해 필요할 수 있습니다. 하위 클래스에서 구현해야 하는 추상 메서드입니다.

@returnsPromise<void>

waitForTasksOutsideAngular

Promise<void>

예약되었거나 실행 중인 모든 비동기 작업이 완료될 때까지 기다립니다. 하네스 작성자가 Angular Zone 밖의 비동기 작업을 기다릴 수 있게 합니다. 하위 클래스에서 구현해야 하는 추상 메서드입니다.

@returnsPromise<void>

getDocumentRoot

E

문서의 루트 엘리먼트를 가져옵니다.

@returnsE

createTestElement

TestElement

원시 엘리먼트로 TestElement를 생성합니다.

@paramelementE
@returnsTestElement

createEnvironment

HarnessEnvironment<E>

주어진 원시 엘리먼트를 기준으로 하는 HarnessEnvironment를 생성합니다.

@paramelementE

getAllRawElements

Promise<E[]>

이 환경의 루트 엘리먼트 아래에서 주어진 선택자와 일치하는 모든 엘리먼트 목록을 가져옵니다.

@paramselectorstring
@returnsPromise<E[]>
상세 내용으로 이동