테스트 유틸리티

현행 표준 — 마지막 갱신

참여:
GitHub whatwg/testutils (새 이슈, 열린 이슈)
Matrix에서 채팅
커밋:
GitHub whatwg/testutils/commits
이 커밋 기준 스냅샷
@testutils
테스트:
web-platform-tests testutils/ (진행 중 작업)
번역 (비규범적):
简体中文
日本語
한국어

요약

이 문서는 브라우저에서 추가적인 테스트 기능을 제공하는 API를 정의합니다

1. 소개

브라우저 테스트는 종종 웹 작성자에게 노출하기에 적합하지 않은 특수 API 표면을 사용하는 것이 필요합니다. 예를 들어, 이는 플랫폼 불변성을 훼손하거나 사용자를 위험에 빠뜨릴 수 있는 동작을 허용할 수 있기 때문입니다. 이런 이유로 크로스 브라우저 테스트를 작성하는 것이 어려워질 수 있으며, 각 웹 플랫폼 구현체별로 이러한 테스트 API를 정의하는 접근 방식이 다릅니다. WebDriver 표준은 일부 자동화된 웹 애플리케이션 테스트를 위한 API를 제공합니다. 하지만 브라우저 구현체 자체를 테스트할 경우 WebDriver 프레임워크에 적합하지 않지만, 테스트에 중요한 추가 API들이 있습니다.

이 명세는 테스트에서 사용할 추가적인 브라우저 내장 API를 정의하지만, 일반 사용자에게는 활성화하면 안 됩니다. 이 API의 주요 클라이언트는 web-platform-tests 테스트 슈트입니다.

2. 인프라스트럭처

이 명세는 Infra 표준에 의존합니다. [INFRA]

이 명세는 Web IDL 표준의 용어를 사용합니다. [WEBIDL]

3. 가용성

이 명세에서 정의한 인터페이스는 사용자 에이전트의 기본 제공 설정에서 활성화되어서는 안 됩니다. 오직 테스트 설정에서만 활성화되어야 하며, 예를 들어 특수 빌드 플래그나 특정 비기본 환경설정을 설정할 때만 사용할 수 있습니다.

4. TestUtils 네임스페이스

[Exposed=(Window,Worker)]
namespace TestUtils {
  [NewObject] Promise<undefined> gc();
};

gc() 메서드는 다음 단계를 수행해야 합니다:

  1. p를 새 프로미스로 둡니다.

  2. 다음을 병렬로 실행합니다:

    2.1 구현체 정의 단계를 실행하여 최소한 엔트리 Realm을 포함하는 가비지 컬렉션을 수행합니다.

    2.2 p를 resolve합니다.

감사의 글

Test Utils 표준에 기여해 주신 다음 분들께 감사드립니다:

Kagami Sascha Rosylight

당신은 최고예요!

이 표준은 James Graham (Mozilla, james@hoppipolla.co.uk)이 작성했습니다.

지적 재산권

Copyright © WHATWG (Apple, Google, Mozilla, Microsoft). 이 저작물은 크리에이티브 커먼즈 저작자표시 4.0 국제 라이선스에 따라 라이선스가 부여됩니다. 일부가 소스 코드에 통합된 경우, 해당 소스 코드 부분은 BSD 3-Clause 라이선스에 따라 라이선스가 부여됩니다.

이 문서는 현행 표준입니다. 특허 검토 버전에 관심이 있는 분은 현행 표준 검토 초안을 참고하시기 바랍니다.

색인

이 명세에서 정의한 용어

참조로 정의된 용어

참고 문헌

규범적 참고 문헌

[HTML]
Anne van Kesteren; 외. HTML 표준. 현행 표준. URL: https://html.spec.whatwg.org/multipage/
[INFRA]
Anne van Kesteren; Domenic Denicola. Infra 표준. 현행 표준. URL: https://infra.spec.whatwg.org/
[WEBDRIVER]
Simon Stewart; David Burns. WebDriver. URL: https://w3c.github.io/webdriver/
[WEBIDL]
Edgar Chen; Timothy Gu. Web IDL 표준. 현행 표준. URL: https://webidl.spec.whatwg.org/

IDL 색인

[Exposed=(Window,Worker)]
namespace TestUtils {
  [NewObject] Promise<undefined> gc();
};